diff --git a/Thirsty Sword Lesbians/TSL.css b/Thirsty Sword Lesbians/TSL.css index 3c715b8775..49c0a7a4c3 100644 --- a/Thirsty Sword Lesbians/TSL.css +++ b/Thirsty Sword Lesbians/TSL.css @@ -143,7 +143,6 @@ input[type="number"].sheet-bignumber { width: 225px; max-width: 225px; min-width: 225px; - max-height: 552px; overflow-x: hidden; overflow-y: scroll; /* flex-basis: 25%; */ @@ -154,12 +153,36 @@ input[type="number"].sheet-bignumber { flex-shrink: 1; min-width: 350px; /* flex-basis: 60%; */ - max-height: 552px; + /* max-height: 552px; */ height: 100%; overflow-x: hidden; overflow-y: scroll; } +input.sheet-height[value="default"] + .sheet-columns .sheet-standard, +input.sheet-height[value="default"] + .sheet-columns .sheet-wide, +input.sheet-height[value="default"] + .sheet-columns .sheet-narrow +{ + max-height: 552px; + height: 552px; +} + +input.sheet-height[value="tall"] + .sheet-columns .sheet-standard, +input.sheet-height[value="tall"] + .sheet-columns .sheet-wide, +input.sheet-height[value="tall"] + .sheet-columns .sheet-narrow +{ + max-height: 800px; + height: 800px; +} + +input.sheet-height[value="max"] + .sheet-columns .sheet-standard, +input.sheet-height[value="max"] + .sheet-columns .sheet-wide, +input.sheet-height[value="max"] + .sheet-columns .sheet-narrow +{ + max-height: none; + height: 100%; +} + .sheet-condition { text-indent: -18px; margin-left: 18px; diff --git a/Thirsty Sword Lesbians/TSL.html b/Thirsty Sword Lesbians/TSL.html index 0c0b576924..f5a5c557dd 100644 --- a/Thirsty Sword Lesbians/TSL.html +++ b/Thirsty Sword Lesbians/TSL.html @@ -2,6 +2,7 @@ // data + var codeVersion = "1.001"; var xpmax = 5; // For TSL, all playbooks have identical advancement options, so that's the reduced-case I'll implement here. @@ -254,7 +255,7 @@ body: "Each player marks XP if, during the session:", bullets: [ "Any PC confessed their love", - "Any PC de-escalated a violent situation", + "Any PC struck a blow against oppression or de-escalated a violent situation", "Any PC leapt into danger with daring and panache", "Any player used a safety tool such as the palette or Check-In Card" ], @@ -272,6 +273,11 @@ "beast": { name: "The Beast", bio: "The Beast follows their truth and their passions, which puts them in conflict with civilization and civilized norms. Unless they give up what makes them special and powerful, they cannot make themself acceptable to that civilized society. Their central conflict is living their truth versus fitting in with a dominant social order. Example Archetypes: Ranger Between Worlds, Bitten, Raised by Beasts", + relationships: [ + "Who most reminds you of a beast?", + "Who most reminds you of prey?", + "Who has seen you at your most bestial?" + ], look: { demeanor: "wild demeanor, hungry demeanor, piercing demeanor", clothes: "torn clothes, practical clothes, chitinous clothes, raider's clothes", @@ -377,6 +383,11 @@ "chosen": { name: "The Chosen", bio: "The Chosen playbook revolves around special status, relationships across social strata, and the crushing expectations of fate, family, or the adoring public. Their central conflict is inner truth versus crushing social expectations. Example Archetypes: Magical Princess, Pop Idol, Chosen One", + relationships: [ + "Who believes in the importance of your Destiny?", + "Who makes you feel like an ordinary person?", + "Who is just as important to you as your Destiny?" + ], look: { demeanor: "Stoic demeanor, benevolent demeanor, authoritative demeanor", clothes: "Fancy clothes, holy vestments, clothes denoting status", @@ -533,6 +544,11 @@ "devoted": { name: "The Devoted", bio: "The Devoted is a selfless protector, committed to a person or a cause. Their central conflict lies in pitting this devotion against self-care. Example Archetypes: Sidekick, Champion, Protective Friend", + relationships: [ + "Is another PC an object of your Devotion?", + "Who looks out for you even when you don’t look out for yourself?", + "Who did you save from a terrible fate?" + ], look: { demeanor: "Hard demeanor, affectionate demeanor, alert demeanor", clothes: "Armor, uniform, sturdy clothes", @@ -667,6 +683,11 @@ "infamous": { name: "The Infamous", bio: "The Infamous once participated in wicked deeds, but they’ve become fiercely righteous in trying to atone. Their central conflict arises from the lasting consequences of their past actions and beliefs versus their new convictions. Will they repair the harm they caused, will they seek forgiveness, or will they despair? Will they find a new place to belong? Example Archetypes: Former Villain, Escaped Henchperson, Veteran of Dishonor", + relationships: [ + "Whom have you wronged the most? Do they know it was you?", + "Who believes in you more than you believe in yourself?", + "Who talks to you about things they wouldn’t discuss with others because of your past?" + ], look: { demeanor: "Haunted demeanor, challenging demeanor, disdainful demeanor", clothes: "Dangerous clothes, unremarkable clothes, transgressive clothes", @@ -791,6 +812,11 @@ "nature witch": { name: "The Nature Witch", bio: "The Nature Witch is deeply connected to their environment and less experienced when it comes to people. They’re either new to socializing or are newly exploring what it feels like to socialize as their true self. Their central conflict revolves around the growth that their explorations will require from them and those who love them. Example Archetypes: Oblivious Horse Girl, Beacon of Kindness, Plant Geek Babygay", + relationships: [ + "Who sees your potential?", + "Who thinks you’re perfect the way you are?", + "Who thought they took you on a date when you thought it was just a fun, friendly time?" + ], look: { demeanor: "Innocent demeanor, wise demeanor, sad demeanor", clothes: "Modest clothes, rough clothes, simple clothes", @@ -918,6 +944,11 @@ "scoundrel": { name: "The Scoundrel", bio: "The Scoundrel is a hero of action and intense physicality. Their sword fights are punctuated by banter and flirtation and end in kisses as often as they end in bloodshed. Their central conflict lies in their urge to explore new horizons versus committing to purpose or security. Example Archetypes: Shimbo Pirate, Diva Fencing Champion, Dashing Jewel Thief", + relationships: [ + "Who were you Smitten with until recently?", + "Who replaced them in your desire?", + "Who has almost as much flair as you?" + ], look: { demeanor: "Playful demeanor, provocative demeanor, eyes only for you", clothes: "Revealing clothes, flowing clothes, tight clothes, gaudy costume", @@ -1040,6 +1071,11 @@ "seeker": { name: "The Seeker", bio: "The Seeker comes from a toxic society and has found a new community in which to belong and grow. Their central conflict pits tradition and upbringing against justice and developing their personal values. Example Archetypes: Immigrant from Heteronormia, Enclave-Raised, Privileged Background", + relationships: [ + "Who reminds you of home?", + "Who is the most outrageous of your new companions?", + "Who is your model for local customs?" + ], look: { demeanor: "Guarded demeanor, curious demeanor, uptight demeanor", clothes: "Foreigner’s clothes, old-fashioned clothes, elaborate getup", @@ -1205,6 +1241,11 @@ "spooky witch": { name: "The Spooky Witch", bio: "The Spooky Witch is a weirdo who does their own thing while craving connection. They’ve found that many monsters are quite friendly if you give them a chance, but befriending them brands you a monster, as well. Their central conflict lies in navigating pressures to conform versus their own desires or those of their monstrous friends. Example archetypes: Spell Dancer, Nerdy Alchemist, Speaker for the Unseen", + relationships: [ + "Who thinks you’re not all that weird?", + "Whom have the Unseen warned you about?", + "Who is your touchstone for what “normal” is?" + ], look: { demeanor: "Focused demeanor, playful demeanor, distant demeanor", clothes: "Wispy clothes, darker-than-black clothes, specialized clothes", @@ -1332,6 +1373,11 @@ "trickster": { name: "The Trickster", bio: "The Trickster is devious and calculating. They fear closeness, sincerity, and vulnerability. If they show you the truth of their heart, they’ll be wearing a mask to do it. Their central conflict lies in desiring closeness while fearing vulnerability. Example Archetypes: Businesslike Spy, Endearing Charlatan, Cold Mastermind", + relationships: [ + "Who has seen a hint of what’s behind your mask?", + "Who has been the worst victim of your trickery?", + "Whom are you most concerned about?" + ], look: { demeanor: "Harmless demeanor, suspicious demeanor, mercurial demeanor", clothes: "Hooded clothes, nondescript clothes, clothes to play a role", @@ -1674,6 +1720,11 @@ removeRepeatingRow("repeating_looks_"+idarray[i]); } }); + getSectionIDs("repeating_relationships", function(idarray) { + for(var i=0; i < idarray.length; i++ ) { + removeRepeatingRow("repeating_relationships_"+idarray[i]); + } + }); getSectionIDs("repeating_stats", function(idarray) { for(var i=0; i < idarray.length; i++ ) { removeRepeatingRow("repeating_stats_"+idarray[i]); @@ -1919,6 +1970,10 @@ } } + // MAKE SURE TO SET SHEET VERSION + + attrs["sheet-version"] = codeVersion; + // ZED? setAttrs(attrs,{},function() { log("done configuring conditions"); @@ -1987,7 +2042,31 @@ }); }); + + // relationships section + + var myrels = playbooks[pbkey].relationships; + + log(`configuring relationship questions for ${pbkey}`); + + getSectionIDs("repeating_relationships", function(idarray) { + for(var i=0; i < idarray.length; i++ ) { + removeRepeatingRow("repeating_relationships_"+idarray[i]); + } + }); + + var relq = {}; + if ( typeof myrels !== "undefined" ) { + for(var i=0; i < myrels.length; i++) { + var newid = generateActuallyUniqueRowID(); + var rpre = "repeating_relationships_"+newid+"_"; + var rtext = rpre + "text"; + relq[rtext] = getTranslationByKey(myrels[i]); + } + setAttrs(relq); + } + // starting stats section log(`configuring starting stats for ${pbkey}`); @@ -3163,9 +3242,57 @@ }); }); }); + + // ====================== + // Sheet Updates Section + // ====================== + + on("sheet:opened", function() { + getAttrs(["sheet-version"], function(s) { + var myVersion = "1.0"; + if ( typeof s["sheet-version"] !== "undefined" && s["sheet=version"] !== "" ) { + myVersion = s["sheet-version"]; + } + log("This sheet is version "+myVersion); + if ( myVersion !== codeVersion ) { + log("This sheet is behind the current version "+codeVersion); + if ( myVersion === "1.0" ) { + // Then do what needs to be done for this version to move up. + var nextVersion = "1.001"; + myVersion = nextVersion; + // 1.001 #1 Make sure the second bullet (bullet1) of the basics move End of Session is corrected + var oldtext = getTranslationByKey("Any PC de-escalated a violent situation"); + var newtext = getTranslationByKey("Any PC struck a blow against oppression or de-escalated a violent situation"); + getSectionIDs("repeating_basic", function(blist) { + var bf = []; + for(var i=0; i < blist.length; i++ ) { + var bfpre = "repeating_basic_" + blist[i] + "_"; + bf[i] = bfpre + "bullet1"; + } + getAttrs(bf, function(bdata) { + for(var i=0; i < blist.length; i++ ) { + if ( bdata[bf[i]] === oldtext ) { + log("discovered oldtext"); + var att = {}; + att[bf[i]] = newtext; + setAttrs(att); + break; + } + } + }); + }); + } + // Once we're comfortable that the right things are being done, + // we make sure to setAttrs sheet-version => myVersion + setAttrs({"sheet-version": myVersion}); + } + }); + }); + +
@@ -3235,21 +3362,6 @@ -
: @@ -3262,6 +3374,8 @@
+ +
@@ -3318,11 +3432,30 @@
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
    +
    + +
  • +
    +
+
+
+
diff --git a/Thirsty Sword Lesbians/sheet.json b/Thirsty Sword Lesbians/sheet.json index 8db0c26c08..c5fa902c2a 100644 --- a/Thirsty Sword Lesbians/sheet.json +++ b/Thirsty Sword Lesbians/sheet.json @@ -4,5 +4,5 @@ "authors": "Fred Hicks (Evil Hat Productions)", "roll20userid": "3844812", "preview": "TSL.png", - "instructions": "Pop on in, choose a playbook, and get playing! Please note that a new character sheet may take several seconds to render the first time, leaving that tab blank while the sheet populates all of its data. If you run into any issues, have suggestions, or anything else, please reach out to Evil Hat at feedback@evilhat.com. You can learn more about TSL at https://www.evilhat.com/home/thirsty-sword-lesbians/ and https://www.kickstarter.com/projects/evilhat/thirsty-sword-lesbians" -} + "instructions": "Pop on in, choose a playbook, and get playing! Please note that a new character sheet may take several seconds to render the first time, leaving that tab blank while the sheet populates all of its data. If you run into any issues, have suggestions, or anything else, please reach out to Evil Hat at feedback@evilhat.com. You can learn more about TSL at http://sword.gay" +} \ No newline at end of file diff --git a/Thirsty Sword Lesbians/translation.json b/Thirsty Sword Lesbians/translation.json index 293a08d007..fb65fc5819 100644 --- a/Thirsty Sword Lesbians/translation.json +++ b/Thirsty Sword Lesbians/translation.json @@ -16,6 +16,7 @@ "Angry": "Angry", "Any PC confessed their love": "Any PC confessed their love", "Any PC de-escalated a violent situation": "Any PC de-escalated a violent situation", + "Any PC struck a blow against oppression or de-escalated a violent situation": "Any PC struck a blow against oppression or de-escalated a violent situation", "Any PC leapt into danger with daring and panache": "Any PC leapt into danger with daring and panache", "Any player used a safety tool such as the palette or Check-In Card": "Any player used a safety tool such as the palette or Check-In Card", "Ask a question from Figure Out a Person of anyone, anywhere, if you can name one of their deceased loved ones": "Ask a question from Figure Out a Person of anyone, anywhere, if you can name one of their deceased loved ones", @@ -613,5 +614,37 @@ "Figure Out": "Figure Out", "Time for a String Advance!": "Time for a String Advance!", "Introduce yourself!": "Introduce yourself!", + "Sheet Height": "Sheet Height", + "Default": "Default", + "Tall": "Tall", + "Max": "Max", + "Relationship Questions": "Relationship Questions", + "Who most reminds you of a beast?": "Who most reminds you of a beast?", + "Who most reminds you of prey?": "Who most reminds you of prey?", + "Who has seen you at your most bestial?": "Who has seen you at your most bestial?", + "Who believes in the importance of your Destiny?": "Who believes in the importance of your Destiny?", + "Who makes you feel like an ordinary person?": "Who makes you feel like an ordinary person?", + "Who is just as important to you as your Destiny?": "Who is just as important to you as your Destiny?", + "Is another PC an object of your Devotion?": "Is another PC an object of your Devotion?", + "Who looks out for you even when you don’t look out for yourself?": "Who looks out for you even when you don’t look out for yourself?", + "Who did you save from a terrible fate?": "Who did you save from a terrible fate?", + "Whom have you wronged the most? Do they know it was you?": "Whom have you wronged the most? Do they know it was you?", + "Who believes in you more than you believe in yourself?": "Who believes in you more than you believe in yourself?", + "Who talks to you about things they wouldn’t discuss with others because of your past?": "Who talks to you about things they wouldn’t discuss with others because of your past?", + "Who sees your potential?": "Who sees your potential?", + "Who thinks you’re perfect the way you are?": "Who thinks you’re perfect the way you are?", + "Who thought they took you on a date when you thought it was just a fun, friendly time?": "Who thought they took you on a date when you thought it was just a fun, friendly time?", + "Who were you Smitten with until recently?": "Who were you Smitten with until recently?", + "Who replaced them in your desire?": "Who replaced them in your desire?", + "Who has almost as much flair as you?": "Who has almost as much flair as you?", + "Who reminds you of home?": "Who reminds you of home?", + "Who is the most outrageous of your new companions?": "Who is the most outrageous of your new companions?", + "Who is your model for local customs?": "Who is your model for local customs?", + "Who thinks you’re not all that weird?": "Who thinks you’re not all that weird?", + "Whom have the Unseen warned you about?": "Whom have the Unseen warned you about?", + "Who is your touchstone for what “normal” is?": "Who is your touchstone for what “normal” is?", + "Who has seen a hint of what’s behind your mask?": "Who has seen a hint of what’s behind your mask?", + "Who has been the worst victim of your trickery?": "Who has been the worst victim of your trickery?", + "Whom are you most concerned about?": "Whom are you most concerned about?", "__end__": "END OF JSON" }