Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Changing number of non-disabled inventory slots based on CON (Knave)

Hi, I'm very new to HTML, however I've set out to create a character sheet for my game of OSR Knave. The issue I'm having is that the total number of usable inventory slots should be equal to the character's Constitution score. Ideally I'd like to have the remaining slots greyed out (disabled). I think I need to use a sheetworker for this, since I think I need some if/else loops. The rest of the sheet is fairly simple and works fine. However the script at the bottom, along with the item slots just above it isn't working as planned. If anyone has any pointers for me I would be eternally grateful! Thanks in advance! The HTML half of my sheet: <div class="sheet-wrapper">     <div class="sheet-heading">         <span>Name: <input type="text" name="attr_character_name" value="A Knave"/></span>                 </div>     <div class="sheet-exp">                 <span><span>Level:</span>         <input class="sheet-wide" type="number" name="attr_Level" value="1" />         </span>         <span><span>Experience:</span>         <input class="sheet-wide" type="number" name="attr_Exp" value="0" />         </span>         <span><span>Alignment:</span>         <input class="sheet-wide" type="text" name="attr_align" value="" />         </span>         <span><span>Gold in Stash:</span>         <input class="sheet-wide" type="number" name="attr_Gold" value="0" />         </span>     </div>     <div class="sheet-str">         <span class="sheet-att-name">Str: <input type="number" name="attr_Strength" value="10"/></span>         <span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Strength:=[[1d20 + @{StrengthMod}]]}}' name='roll_StrCheck' /> + <input type="number" name="attr_StrengthMod" value="@{Strength}-10" disabled="true"/></span>     </div>     <div class="sheet-dex">         <span class="sheet-att-name">Dex: <input type="number" name="attr_Dexterity" value="10"/></span>         <span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Dexterity:=[[1d20 + @{DexterityMod}]]}}' name='roll_DexCheck' /> + <input type="number" name="attr_DexterityMod" value="@{Dexterity}-10" disabled="true"/></span>     </div>     <div class="sheet-int">         <span class="sheet-att-name">Int: <input type="number" name="attr_Intelligence" value="10"/></span>         <span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Intelligence:=[[1d20 + @{IntelligenceMod}]]}}' name='roll_IntCheck' /> + <input type="number" name="attr_IntelligenceMod" value="@{Intelligence}-10" disabled="true"/></span>     </div>     <div class="sheet-wis">         <span class="sheet-att-name">Wis: <input type="number" name="attr_Wisdom" value="10"/></span>         <span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Wisdom:=[[1d20 + @{WisdomMod}]]}}' name='roll_WisCheck' /> + <input type="number" name="attr_WisdomMod" value="@{Wisdom}-10" disabled="true"/></span>     </div>     <div class="sheet-con">         <span class="sheet-att-name">Con: <input type="number" name="attr_constitution" value="10"/></span>         <span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Constitution:=[[1d20 + @{ConstitutionMod}]]}}' name='roll_ConCheck' /> + <input type="number" name="attr_ConstitutionMod" value="@{constitution}-10" disabled="true"/></span>     </div>     <div class="sheet-cha">         <span class="sheet-att-name">Cha: <input type="number" name="attr_Charisma" value="10"/></span>         <span class="sheet-att-bon"><button type='roll' value='&{template:default} {{name=@{character_name} rolled an Ability Check!}} {{Charisma:=[[1d20 + @{CharismaMod}]]}}' name='roll_ChaCheck' /> + <input type="number" name="attr_CharismaMod" value="@{Charisma}-10" disabled="true"/></span>     </div>     <div class="sheet-hps">         <span>Hit Points</span>         <span>Current: <input type="number" name="attr_HP" value="1"/></span>         <span>Max HP: <input type="number" name="attr_HP_max" value="1"/></span>              </div>        <div class="sheet-morale">         <span>NPC Morale</span>         <span>Break: <input type="number" name="attr_Morale" value="7"/>         Check:<button class="sheet-morale-check" type='roll' value='&{template:default} {{name= @{character_name} Morale Break Check}} {{If Greater than @{Morale}:=[[2d6]]}}' name='roll_morale'></button></span>     </div>     <div class="sheet-armor">         Armor      <span class="sheet-armor1">Worn:  <input type="number" name="attr_ArmorBase" value="10"/></span>       <span class="">Speed:  <input type="number" name="attr_Speed" value="40"/></span>         <span><input type='checkbox' name='attr_HasHelm' value='1' /> Helm</span>         <span><input type='checkbox' name='attr_HasShield' value='1' /> Shield</span>         <span>Total AC:  <input type="number" name="attr_Armor" value="@{ArmorBase}+@{HasShield}+@{HasHelm}" disabled="true"/></span>     </div>         <div class="sheet-attacks">          Melee Weapon          +Attack     Damage          <span class="sheet-attack-slot">               <input class="sheet-attack-roll1" type="number" name="attr_Melee_Bonus1" value="+0"/>               <button class="sheet-att-bon" type='roll' value='&{template:default} {{name= @{character_name} attacks with a @{attack_1_desc}!}} {{Combat=Melee (Strength)}}{{to hit=[[1d20+@{StrengthMod}+@{Melee_Bonus1}]]}}' name='roll_MeleeAttack1'></button>               <button type='roll' value='&{template:default} {{name= @{character_name} hits with the @{attack_1_desc}!}} {{Dealing=[[@{attack_1_damage}]] Damage}}' name='roll_Attack_1'></button>               <input class="sheet-attack-descr" type="text" name="attr_attack_1_desc" value="[Melee Weapon Name]"/>               <input class="sheet-attack-damage" type="text" name="attr_attack_1_damage" value="1d8"/>           </span>         <span class="sheet-attack-slot">               <input class="sheet-attack-roll2" type="number" name="attr_Melee_Bonus2" value="+0"/>               <button class="sheet-att-bon" type='roll' value='&{template:default} {{name= @{character_name} attacks with a @{attack_2_desc}!}} {{Combat=Melee (Strength)}}{{to hit=[[1d20+@{StrengthMod}+@{Melee_Bonus2}]]}}' name='roll_MeleeAttack2'></button>               <button type='roll' value='&{template:default} {{name= @{character_name} hits with the @{attack_2_desc}!}} {{Dealing=[[@{attack_2_damage}]] Damage}}' name='roll_Attack_2'></button>               <input class="sheet-attack-descr" type="text" name="attr_attack_2_desc" value="Improvised Melee Weapon"/>               <input class="sheet-attack-damage" type="text" name="attr_attack_2_damage" value="1d6"/>           </span>         <span class="sheet-attack-slot">               <input class="sheet-attack-roll3" type="number" name="attr_Melee_Bonus3" value="+0"/>               <button class="sheet-att-bon" type='roll' value='&{template:default} {{name= @{character_name} attacks with a @{attack_3_desc}!}} {{Combat=Melee (Strength)}}{{to hit=[[1d20+@{StrengthMod}+@{Melee_Bonus3}]]}}' name='roll_MeleeAttack3'></button>               <button type='roll' value='&{template:default} {{name= @{character_name} hits with the @{attack_3_desc}!}} {{Dealing=[[@{attack_3_damage}]] Damage}}' name='roll_Attack_3'></button>               <input class="sheet-attack-descr" type="text" name="attr_attack_3_desc" value="Punch/Kick"/>               <input class="sheet-attack-damage" type="text" name="attr_attack_3_damage" value="1d2"/>           </span>           <span class="sheet-top-break"> Ranged Weapon        +Attack     Damage </span>         <span class="sheet-attack-slot">               <input class="sheet-attack-roll4" type="number" name="attr_Ranged_Bonus4" value="+0"/>               <button class="sheet-att-bon2" type='roll' value='&{template:default} {{name= @{character_name} attacks with a @{attack_4_desc}!}} {{Combat=Ranged (Wisdom)}}{{to hit=[[1d20+@{WisdomMod}+@{Ranged_Bonus4}]]}}' name='roll_RangedAttack4'></button>               <button type='roll' value='&{template:default} {{name= @{character_name} hits with the @{attack_4_desc}!}} {{Dealing=[[@{attack_4_damage}]] Damage}}' name='roll_Attack_4'></button>               <input class="sheet-attack-descr" type="text" name="attr_attack_4_desc" value="[Ranged Weapon Name]"/>               <input class="sheet-attack-damage" type="text" name="attr_attack_4_damage" value="1d6"/>           </span>         <span class="sheet-attack-slot">               <input class="sheet-attack-roll5" type="number" name="attr_Ranged_Bonus5" value="+0"/>               <button class="sheet-att-bon2" type='roll' value='&{template:default} {{name= @{character_name} attacks with a @{attack_5_desc}!}} {{Combat=Ranged (Wisdom)}}{{to hit=[[1d20+@{WisdomMod}+@{Ranged_Bonus5}]]}}' name='roll_RangedAttack5'></button>               <button type='roll' value='&{template:default} {{name= @{character_name} hits with the @{attack_5_desc}!}} {{Dealing=[[@{attack_5_damage}]] Damage}}' name='roll_Attack_5'></button>               <input class="sheet-attack-descr" type="text" name="attr_attack_5_desc" value="Improvised Ranged Weapon"/>               <input class="sheet-attack-damage" type="text" name="attr_attack_5_damage" value="1d4"/>           </span>     </div>     <div class="sheet-notes">         Notes / Background         <textarea name="attr_notes"></textarea>     </div>     <div class="sheet-slots">         <span class="sheet-slots-title">Equipment Slots ( Character Max Slots = <input type="number" name="attr_Slots" value="@{constitution}" disabled="true"/>)         </span>         <span class="sheet-slot">           1: <input class="sheet-contents" type="text" name="attr_item_1_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_1_qual" value=""/>         </span>         <span class="sheet-slot">           11:<input class="sheet-contents"  type="text" name="attr_item_11_desc" value=""/>            <input class="sheet-quality" type="text" name="attr_item_11_qual" value=""/>         </span>         <span class="sheet-slot">            2: <input class="sheet-contents"  type="text" name="attr_item_2_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_2_qual" value=""/>         </span>         <span class="sheet-slot">          12:<input class="sheet-contents"  type="text" name="attr_item_12_desc" value="" disable12/>          <input class="sheet-quality" type="text" name="attr_item_12_qual" value="" disable12/>         </span>         <span class="sheet-slot">            3: <input class="sheet-contents"  type="text" name="attr_item_3_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_3_qual" value=""/>         </span>         <span class="sheet-slot">           13:<input class="sheet-contents"  type="text" name="attr_item_13_desc" value="" disable13/>           <input class="sheet-quality" type="text" name="attr_item_13_qual" value="" disable13/>         </span>         <span class="sheet-slot">            4: <input class="sheet-contents"  type="text" name="attr_item_4_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_4_qual" value=""/>         </span>         <span class="sheet-slot">           14:<input class="sheet-contents"  type="text" name="attr_item_14_desc" value="" disable14/>           <input class="sheet-quality" type="text" name="attr_item_14_qual" value="" disable14/>         </span>         <span class="sheet-slot">            5: <input class="sheet-contents"  type="text" name="attr_item_5_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_5_qual" value=""/>         </span>         <span class="sheet-slot">           15:<input class="sheet-contents"  type="text" name="attr_item_15_desc" value="" disable15/>           <input class="sheet-quality" type="text" name="attr_item_15_qual" value="" disable15/>         </span>         <span class="sheet-slot">            6: <input class="sheet-contents"  type="text" name="attr_item_6_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_6_qual" value=""/>         </span>         <span class="sheet-slot">           16:<input class="sheet-contents"  type="text" name="attr_item_16_desc" value="" disable16/>           <input class="sheet-quality" type="text" name="attr_item_16_qual" value="" disable16/>         </span>         <span class="sheet-slot">            7: <input class="sheet-contents"  type="text" name="attr_item_7_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_7_qual" value=""/>         </span>         <span class="sheet-slot">           17:<input class="sheet-contents"  type="text" name="attr_item_17_desc" value="" disable17/>           <input class="sheet-quality" type="text" name="attr_item_17_qual" value="" disable17/>         </span>         <span class="sheet-slot">            8: <input class="sheet-contents"  type="text" name="attr_item_8_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_8_qual" value=""/>         </span>         <span class="sheet-slot">           18:<input class="sheet-contents"  type="text" name="attr_item_18_desc" value="" disable18/>           <input class="sheet-quality" type="text" name="attr_item_18_qual" value="" disable18/>         </span>         <span class="sheet-slot">            9: <input class="sheet-contents"  type="text" name="attr_item_9_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_9_qual" value=""/>         </span>         <span class="sheet-slot">           19:<input class="sheet-contents"  type="text" name="attr_item_19_desc" value="" disable19/>           <input class="sheet-quality" type="text" name="attr_item_19_qual" value="" disable19/>         </span>         <span class="sheet-slot">           10:<input class="sheet-contents"  type="text" name="attr_item_10_desc" value=""/>           <input class="sheet-quality" type="text" name="attr_item_10_qual" value=""/>         </span>         <span class="sheet-slot">           20:<input class="sheet-contents"  type="text" name="attr_item_20_desc" value="" disable20/>           <input class="sheet-quality" type="text" name="attr_item_20_qual" value="" disable20/>         </span>     </div> </div> <!-- ---------------------------SHEET WORKERS----------------- --> <script type="text/worker"> // On changing Constitution stat, recalculate number of open (non-disabled) item slots // number of open slots should coincide with constitution score!  on("change:con", function() {   getAttrs(["constitution"], function(value) { let con = parseInt(value.constitution)||11; if (con < 12) disable12 = "disabled"; else disable12 = ""; if (con < 13) disable13 = "disabled"; else disable13 = ""; if (con < 14) disable14 = "disabled"; else disable 14 = ""; if (con < 15) disable15 = "disabled"; else disable15 = ""; if (con < 16) disable16 = "disabled"; else disable16 = ""; if (con < 17) disable17 = "disabled"; else disable17 = ""; if (con < 18) disable18 = "disabled"; else disable18 = ""; if (con < 19) disable19 = "disabled"; else disable19 = ""; if (con < 20) disable20 = "disabled"; else disable20 = ""; setAttrs({                             disable12 : disable12, disable13 : disable13, disable14 : disable14, disable15 : disable15, disable16 : disable16, disable17 : disable17, disable18 : disable18, disable19 : disable19, disable20 : disable20 }); }); }); </script> And the CSS part, in case that's needed too: div {     border: thin solid black;     border-bottom: medium solid black;     border-right: medium solid black;     background: #F0EEDC; } input:disabled {   background: #ddd; } .sheet-wrapper {   display: grid;   border: none;   grid-template-columns: repeat(6, 1fr);   grid-gap: 1px;   grid-auto-rows: minmax(30px, auto);   background: #F0EEDC; } .sheet-exp span input.sheet-wide {     width: 80px; } .sheet-heading {   grid-column: 1 / span 3;   grid-row: 1;   font-weight: bold;   text-align: left; } .sheet-heading input {   width:300px;    } .sheet-exp {   grid-column: 4 / span 3;   grid-row: 1;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr;   font-weight: bold;   text-align: right; } .sheet-exp-1 {   grid-column: 1 / span 2 } .sheet-str {   grid-column: 1;   grid-row: 2 ;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr;   text-align: center;    background: #E59866; } .sheet-att-name{   font-weight: bold;   grid-column: 1 / 3;   grid-row: 1;   } .sheet-att-bon{   grid-column: 1 / 3;   grid-row: span 1;   } .sheet-dex {   grid-column: 2;   grid-row: 2 ;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr;   text-align: center;   background: #F7DC6F; } .sheet-int {   grid-column: 3;   grid-row: 2 ;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr;   text-align: center;   background: #85C1E9; } .sheet-wis {   grid-column: 4;   grid-row: 2 ;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr;   text-align: center;   background: #82E0AA; } .sheet-con {   grid-column: 5;   grid-row: 2 ;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr;   text-align: center;   background: #EC7063; } .sheet-cha {   grid-column: 6;   grid-row: 2 ;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr;   text-align: center;   background: #C39BD3; } .sheet-two {    grid-column: 4 / 7;   grid-row: 1 ; } .sheet-top-break {     border-top: thin gray solid; } .sheet-hps {   grid-column:   5;   grid-row: 3 / span 1;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr;   text-align: center;   font-weight: bold;   background: #E6B0AA; } .sheet-morale {   grid-column:   5;   grid-row: 4 / span 1;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr;   text-align: center;   font-weight: bold;   background: #ddd; }   .sheet-morale button.sheet-morale-check {   width: 35px;   background: #C39BD3;   }    .sheet-armor {   grid-column: 6 ;   grid-row: 3 / span 2;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr;   text-align: center;   font-weight: bold; } .sheet-logo {   grid-column: 6 ;   grid-row: 3 / 5; } .sheet-attacks {   grid-column: 1 / span 4;   grid-row: 3 / span 2;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr ;   text-align: center;   font-weight: bold; } .sheet-attack-slot {   display: grid;   grid-gap: 5px;   grid-template-columns: 1fr 1fr 1fr 1fr 1fr;   grid-template-rows: 1fr;   text-align: center;   font-weight: bold;   } .sheet-attacks .sheet-attack-slot input.sheet-attack-damage {   width: 60px;   grid-column: 4 ;   grid-row: 1; } .sheet-attacks .sheet-attack-slot input.sheet-attack-descr {   width: 250px;   grid-column: 1;   grid-row: 1; } .sheet-attacks .sheet-attack-slot input.sheet-attack-roll1 {   width: 50px;   grid-column: 2;   grid-row: 1; } .sheet-attacks .sheet-attack-slot input.sheet-attack-roll2 {   width: 50px;   grid-column: 2;   grid-row: 1; } .sheet-attacks .sheet-attack-slot input.sheet-attack-roll3 {   width: 50px;   grid-column: 2;   grid-row: 1; } .sheet-attacks .sheet-attack-slot input.sheet-attack-roll4 {   width: 50px;   grid-column: 2;   grid-row: 1; } .sheet-attacks .sheet-attack-slot input.sheet-attack-roll5 {   width: 50px;   grid-column: 2;   grid-row: 1; } .sheet-attacks .sheet-attack-slot button {   width: 20px;   grid-column: 5;   grid-row: 1;   background: #E6B0AA; }   .sheet-attacks .sheet-attack-slot button.sheet-att-bon {   width: 20px;   grid-column: 3;   grid-row: 1;   background: #E59866;    }   .sheet-attacks .sheet-attack-slot button.sheet-att-bon2 {   width: 20px;   grid-column: 3;   grid-row: 1;   background: #82E0AA; } .sheet-notes {   grid-column: 1 / span 2;   grid-row: 5 / 11;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr;   grid-template-rows: 1fr 19fr;   text-align: center;   font-weight: bold; } .sheet-notes textarea {     height: 95%;     width: 95%; } .sheet-slots {   grid-column: 3 / span 4;   grid-row: 5 / 11;   display: grid;   grid-gap: 3px;   grid-template-columns: 1fr 1fr ;   text-align: center;   font-weight: bold; } .sheet-slot {   display: grid;   grid-gap: 1px;   grid-template-columns: 2fr 1fr 1fr 1fr;   grid-template-rows: 1;   text-align: center;   font-weight: bold;   height: 10px; } .sheet-slots-title {   grid-column: span 2;   font-weight: bold;   text-align: center;   height: 10px; } .sheet-contents {     width: 165px;     height: 20px; } .sheet-quality {     width: 40px; }
1592613535
GiGs
Pro
Sheet Author
API Scripter
Chances are you havent got a response because you've posted too much code and the post looks really complex. Generally speaking, you shouldnt post entire sheets into the forum, where they become unreadable. Post them instead to some place like pastebin, or gist.github.com, and link them here. It's best to post code fragments, just the part of the sheet code that is relevant to the question you're asking. For your specific question: what you're asking can't be done in the way you are trying. You have some invalid syntax like here: <input class="sheet-contents"  type="text" name="attr_item_12_desc" value="" disable12/> What I think you'll need to do is create two versions of each of the inventory inputs, like so <input class="sheet-contents inventory-12-disabled"  type="text" name="attr_item_12_desc" value="" disabled="true"/> <input class="sheet-contents inventory-12"  type="text" name="attr_item_12_desc" value="" /> Then use CSS rules to switch between the disabled and non-disabled ones. Your sheet worker would be something like (note that your sheet worker had an error in change line - you didnt use the proper name for constitution): on("change:constitution", function() {   getAttrs(["constitution"], function(value) { let con = parseInt(value.constitution)||11;                 let inventory = {}                 for(let i = 12; i<= 20; i++) {                     if(i > con) {                         inventory['disable' + i] = 0;                     } else {                         inventory['disable' + i] = 1;                     }                 setAttrs(inventory); }); }); This will set the inputs disable12 to disable20 to either 0 or 1.  Then you need to create hidden inputs to hold those values. Put each one just before the inventory slots its meant to show or hide. <input class="disable12" type="hidden" name="attr_disable12" value="0"/> <input class="sheet-contents inventory-12-disabled"  type="text" name="attr_item_12_desc" value="" disabled="true"/> <input class="sheet-contents inventory-12"  type="text" name="attr_item_12_desc" value="" /> Then in your CSS, you set up rules to hide or show them. First set up a set of rules to hide them all. input.sheet-inventory12, input.sheet-inventory13, input.sheet-inventory14, input.sheet-inventory15, input.sheet-inventory16, input.sheet-inventory17, input.sheet-inventory18, input.sheet-inventory19, input.sheet-inventory20, input.sheet-inventory12-disabled, input.sheet-inventory13-disabled, input.sheet-inventory14-disabled, input.sheet-inventory15-disabled, input.sheet-inventory16-disabled, input.sheet-inventory17-disabled, input.sheet-inventory18-disabled, input.sheet-inventory19-disabled, input.sheet-inventory20-disabled {     display: none; } Then set up a rule to show them conditionally. You want to show the disabled ones when the matching input has a value of 0, and show the non-disabled ones when the matching input has a value of 1. You do this by matching the class  on the hidden input. input.sheet-disable12[value="1"] ~ input.sheet-inventory12, input.sheet-disable13[value="1"] ~ input.sheet-inventory13, input.sheet-disable14[value="1"] ~ input.sheet-inventory14, input.sheet-disable15[value="1"] ~ input.sheet-inventory15, input.sheet-disable16[value="1"] ~ input.sheet-inventory16, input.sheet-disable17[value="1"] ~ input.sheet-inventory17, input.sheet-disable18[value="1"] ~ input.sheet-inventory18, input.sheet-disable19[value="1"] ~ input.sheet-inventory19, input.sheet-disable20[value="1"] ~ input.sheet-inventory20, input.sheet-disable12[value="0"] ~ input.sheet-inventory12-disabled, input.sheet-disable13[value="0"] ~ input.sheet-inventory13-disabled, input.sheet-disable14[value="0"] ~ input.sheet-inventory14-disabled, input.sheet-disable15[value="0"] ~ input.sheet-inventory15-disabled, input.sheet-disable16[value="0"] ~ input.sheet-inventory16-disabled, input.sheet-disable17[value="0"] ~ input.sheet-inventory17-disabled, input.sheet-disable18[value="0"] ~ input.sheet-inventory18-disabled, input.sheet-disable19[value="0"] ~ input.sheet-inventory19-disabled, input.sheet-disable20[value="0"] ~ input.sheet-inventory20-disabled {     display: inline-block; } Something like that should do the trick.
1592613574
GiGs
Pro
Sheet Author
API Scripter
See the CSS Wizardry page on the wiki for techniques like this.
This is great! I'll have a go at it and only post again if I get stuck. Thank you so much for your time and help! Also, noted about using github in the future.