Merge branch 'master' into Shadowrun6-German-v0.5

This commit is contained in:
Valanor
2021-04-06 12:20:55 +02:00
committed by GitHub
467 changed files with 66256 additions and 56145 deletions
+25 -25
View File
@@ -1,5 +1,5 @@
{
"acumen": "Agudeza",
"acumen": "Astucia",
"add_domain_spend_pathos": "Añadir otro Dominio (gastar Pathos)",
"advantage_bond_support": "Ventaja/Lazo/Apoyo",
"agony": "Agonía",
@@ -15,26 +15,26 @@
"beauty": "Belleza",
"blood_valor": "Sangre y Valor",
"bond_use_1": "Te refuerce",
"bond_use_2": "Bloquee Daño o Destino por ti",
"bond_use_3": "Siga tus indicaciones",
"bond_use_top": "Cuando usas un Lazo, pídele que:",
"bond_use_2": "Te proteja del Daño o el Destino",
"bond_use_3": "Acepte tu liderazgo",
"bond_use_top": "Cuando uses un vínculo, pídele que:",
"bonds": "Lazo",
"bonusdice_query": "Otro dado (Ventaja, Dado de Lazo o Apoyo), p.e. 1d8 + 1d8 + 1d6",
"boons": "Hazañas",
"boons_1": "Aumenta un d8 de Dominio a un d10",
"boons_2": "Aumenta un d6 de Dominio a un d8",
"boons_3": "Aumenta tu dado de Epíteto a un d8",
"boons_4": "Añade otro Epíteto",
"boons_5": "Cuando refuerzas o apoyas, el dado que otorgas cuenta como un tamaño más grande.",
"boons_6": "Cuando marcas Pathos para un Dominio adicional, coge dos dados extra en lugar de uno.",
"boons_7": "Cuando gastas Favor divino, tira +2d4 y quédate con el mayor.",
"boons": "Bendiciones",
"boons_1": "Aumenta un Dominio de d8 a d10",
"boons_2": "Aumenta un Dominio de d6 a d8",
"boons_3": "Aumenta tu Epíteto a d8",
"boons_4": "Añade un segundo Epíteto a d6",
"boons_5": "Cuando apoyas o refuerzas, el dado que otorgas crece en un paso de tamaño.",
"boons_6": "Cuando sacrificas Pathos para ganar un Dominio extra en una tirada, te da dos dados en lugar de uno.",
"boons_7": "Cuando gastas favor divino, tiras 2d4 y te quedas con el más alto.",
"character": "Personaje",
"choose_sheet_type": "Elige el tipo de ficha",
"conviction": "Convicción",
"courage": "Coraje",
"craft_reason": "Artesanía y Razón",
"cunning": "Astucia",
"daring": "Audacia",
"daring": "Osadía",
"demeter": "Deméter",
"die_placeholder": "Nombre, Epíteto, Dados bonus,...",
"divine_favor": "Favor Divino",
@@ -49,15 +49,15 @@
"ferocity": "Ferocidad",
"fortitude": "Fortaleza",
"glory": "Gloria",
"grace": "Gracias",
"grace": "Gracia",
"great_deed": "Grandes Hazañas",
"great_deeds_and_trophies": "Grandes Hazañas y Trofeos",
"great_deeds_and_trophies": "Trofeos y Grandes hazañas",
"hekate": "Hécate",
"hephaistos": "Hefesto",
"hera": "Hera",
"hermes": "Hermes",
"honored_god": "Dios Venerado",
"ingenuity": "Invención",
"honored_god": "Deidad patrón",
"ingenuity": "Inventiva",
"insight": "Perspicacia",
"island": "Isla",
"island_destinies": "Islas destino",
@@ -75,14 +75,14 @@
"poseidon": "Poseidón",
"perilous": "Peligroso",
"precision": "Precisión",
"recite_arts_oration": "¿Qué dulces palabras utilizaste?\n¿Cómo se manifestó la belleza?\n¿Cómo se avivaron las pasiones y se atestiguaron las verdades?",
"recite_blood_valor": "¿Cómo fue derramada la sangre?\n¿Cómo se demostró tu fuerza, agilidad o coraje?\n¿Cómo nos dejaste sin aliento?",
"recite_bottom": "SUFRIR—¿Cómo te quedas corto? ¿Te extralimitaste? ¿Era tu oponente demasiado bueno? ¿Fue la cruel fortuna?",
"recite_craft_reason": "¿Cómo se demostraron tus conocimientos o tu creatividad?\n¿Cómo fue exhibida la intriga y el engaño?\n¿Cómo lo averiguaste?",
"recite_resolve_spirit": "¿Cómo vemos tu fuerza de voluntad en acción?\n¿Cómo lo soportaste?\n¿Cómo se manifestó lo oscuro o arcano?",
"recite_top": "¿Cómo se manifiestan tu EPÍTETO, PATHOS (y Dominio añadido), o FAVOR DIVINO en el enfrentamiento?",
"recite_your_deeds": "Recita tus acciones",
"resolve_spirit": "Determinación y Espíritu",
"recite_arts_oration": "¿Qué sibilinas palabras usaste?\n¿Cómo se manifestó la belleza?\n¿Qué pasiones despertaron o qué verdades salieron a la luz?",
"recite_blood_valor": "¿Cómo se derramó sangre?\n¿Cómo demostraste tu fuerza, agilidad o coraje?\n¿Cómo perdiste el aliento?",
"recite_bottom": "SUFRE—¿Cómo fracasaste? ¿Intentaste lograr demasiado? ¿El oponente fue mejor? ¿Se debió a la cruel fortuna?",
"recite_craft_reason": "¿Cómo mostraste tus conocimientos o creatividad?\n¿Cómo se resolvió ese engaño o intriga?\n¿Cómo lo descubriste?",
"recite_resolve_spirit": "¿Cómo se reflejó físicamente tu determinación?\n¿Cómo lo soportaste?\n¿Cómo se manifestaron esas fuerzas arcanas u ocultas?",
"recite_top": "¿Cómo se manifiestan tu EPÍTETO, PATHOS (al añadir otro Dominio) o el FAVOR DIVINO en la contienda?",
"recite_your_deeds": "Recita tus hazañas",
"resolve_spirit": "Resolución y Espíritu",
"roll_prevails": "Tu acción tiene éxito y superas el desafío. El mejor héroe gana tanta Gloria como el número objetivo. Los héroes que prevalecen ganan la mitad de esa cantidad (redondeando hacia arriba).",
"roll_strife": "Tira Discordia",
"roll_suffers": "Los héroes que sufren ganan 1 de Gloria cada uno.",
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -4,6 +4,5 @@
"authors": "Le GDF (Logo : Maud Chalmel)",
"preview": "agone-sheet.png",
"roll20userid": "1686183",
"instructions": "Second version. Issues were fixed but the most important is that all the attributes name have been changed, there is a conversion button in the 'Aide' at the top right of the sheet.",
"legacy": true
"instructions": "The conversion is gone from v0.7. Please use any previous versions to convert an old sheet, then you should be able to use this last version of the sheet. Use AgoneDice v0.3 with it."
}
+7
View File
@@ -300,6 +300,13 @@
<td><input style="width: 50px;" name="attr_rr_Piernai" type="number" /></td>
<td><input style="width: 50px;" name="attr_rra_Piernai" type="number" /></td>
</tr>
<tr>
<td></td>
<td>Escudo</td>
<td><input style="width: 180px;" name="attr_Escudo" type="text" /></td>
<td><input style="width: 50px;" name="attr_rr_Escudo" type="number" /></td>
<td><input style="width: 50px;" name="attr_rra_Escudo" type="number" /></td>
</tr>
</tbody>
</table>
</td>
+77 -77
View File
@@ -1,18 +1,18 @@
{
"abilities": "Abilities",
"ability_description": "Ability description",
"ability_name": "Ability name",
"acquire_assets": "Acquire Assets",
"action_roll_1_3": "<b>Bad Outcome</b> — You are thwarted and suffer consequences.",
"abilities": "Zdolności",
"ability_description": "Opis zdolności",
"ability_name": "Nazwa zdolności",
"acquire_assets": "Pozyskanie Zasobów",
"action_roll_1_3": "<b>Porażka</b> — You are thwarted and suffer consequences.",
"action_roll_4_5": "<b>Partial Success</b> — You do it but there are consequences.",
"action_roll_6": "<b>Success</b> — You do it!",
"action_roll_crit": "<span class=\"sheet-smallcaps\">Critical</span> — You do it with increased effect!",
"actions": "Akcje",
"additional_info": "Additional info",
"advancement": "Advancement",
"aim": "Aim",
"additional_info": "Dodatkowe informacje",
"advancement": "Rozwinięcie",
"aim": "Celowanie",
"aim_desc": "While on a mission, you may spend aim uses to increase the effect level of a shot. This means you can sometimes take out large, dangerous enemies with a single bullet.",
"alchemical_chembalm": "Chembalm",
"alchemical_chembalm": "Gasijad",
"alchemical_chembalm_desc": "Neutralizes most poisons and toxins.",
"alchemical_deep": "Deep",
"alchemical_deep_desc": "Lets you hold your breath for a scene.",
@@ -28,7 +28,7 @@
"anchor_desc": "While on a mission, you may spend anchor uses to fight as a small group. This means you can face groups of lesser undead without loss of effect.",
"annals_choose_1_effect": "Choose 1 Effect on the Legion:",
"annals_details": "When a soldier falls, note their name. When four are entered into the Annals, the next time that <b>time passes</b>, before <b>campaign</b> actions, take a moment to tell a tale and choose the effect it has on the Legion.",
"annals_of_the_legions": "Annals of the Legions",
"annals_of_the_legions": "Kroniki Legionu",
"annals_tale_battle_effect_1": "<b>The Legion digs in.</b> Remove 1 <b>pressure</b>, but the Commander may not advance in the next phase.",
"annals_tale_battle_effect_2": "<b>Soldiers prepare to fight swiftly.</b> Next mission, all Specialists gain <b>+1d</b> to <b>maneuver</b> rolls.",
"annals_tale_battle_effect_3": "<b>Soldiers prepare their strongest weapons.</b> Next mission, all Specialists gain <b>+1d</b> to <b>wreck</b> rolls.",
@@ -69,9 +69,9 @@
"annals_tale_will_q2": "Against which supernatural threat did they fight?",
"annals_tale_will_q3": "How many survived and how did they rebuild the Legion?",
"annals_tale_will_top": "Tell a Tale of the Legion’s Unyielding Will",
"armor": "Armor",
"armor": "Pancerz",
"armor_heavy": "Heavy",
"assignment": "Assignment",
"assignment": "Zlecenie",
"athletic": "Athletic",
"back_at_camp": "Back at Camp",
"back_at_camp_top_1": "After missions are done but before campaign actions, play out a small scene about what happened at camp during or shortly after the mission. Remember to carry the story forward (e.g. soldier desertions and deaths still cause morale loss). Explore the struggles of life on the road while together with soldiers from many different cultures.",
@@ -79,24 +79,24 @@
"back_at_camp_top_3": "The prompts are loose inspiration. Experimentation on undead might be a soldier trying to cure a corrupted brother-in-arms, kept chained in his tent. Refugees may seek protection, donation of food supplies, or be emissaries from a nearby settlement.",
"bartan": "Bartan",
"bartan_traits": "Bartan Traits",
"black_shot": "Black Shot",
"blight": "Blight",
"bold": "Bold",
"bonusdice": "Bonus dice",
"black_shot": "Czarna Kula",
"blight": "Spaczenie",
"bold": "Zuchwalec",
"bonusdice": "Kość bonusowa",
"boosted": "Boosted",
"boxes": "Boxes",
"broken": "Broken",
"broken_abilities": "Broken Abilities",
"broken_advancement": "Broken Advancement",
"broken_blighter": "Blighter",
"boxes": "Pola",
"broken": "Splugawiony",
"broken_abilities": "Zdolności splugawionego",
"broken_advancement": "Rozwinięcia splugawionego",
"broken_blighter": "Spaczająca",
"broken_blighter_info": "Also called The Foul, and Corrupter of Flesh.",
"broken_breaker": "Breaker",
"broken_breaker": "Plugawiąca",
"broken_breaker_info": "Also called Stormbreaker, and the Bringer of Thunder.",
"broken_name": "Broken Name",
"broken_name": "Imię splugawionego",
"broken_render": "Render",
"broken_render_info": "Also called Bonerender, and the Hollow Knight.",
"broken_xp_clock": "A time clock is filled (see Commander sheet).",
"broken_xp_first": "You first select your Broken.",
"broken_xp_first": "Najpierw wybierz swojego Splugawionego",
"broken_xp_top": "Your Broken gains an additional <b>Broken ability</b> when...",
"calculating": "Calculating",
"callous": "Callous",
@@ -118,7 +118,7 @@
"camp_event_medium_4": "News arrives of devastation from a different front.",
"camp_event_medium_5": "A squad refuses to go into the field until their captain is replaced.",
"camp_event_medium_6": "A band of refugees stumbles upon your camp and begs for help.",
"campaign_action_acquire_assets": "Acquire Assets",
"campaign_action_acquire_assets": "Pozyskanie Zasobów",
"campaign_action_acquire_assets_boosted": "Upgrade result by one level. You may spend multiple <b>supply</b>.",
"campaign_action_acquire_assets_desc": "Beg, borrow, or steal an <b>asset</b> you need. Roll the location’s <b>assets</b> rating. The result indicates the quality of the asset (<b>1-3:</b> Poor. <b>4/5:</b> Standard. <b>6:</b> Fine. <span class=\"sheet-smallcaps\">crit:</span> Exceptional). Laborers, Siege Weapons, and alchemical concoctions are fine quality. Alchemists and Mercies are exceptional quality.",
"campaign_action_liberty": "Liberty",
@@ -133,26 +133,26 @@
"campaign_action_rest_and_recuperation": "Rest and Recuperation",
"campaign_action_rest_and_recuperation_boosted": "Every Legionnaire gains a second healing tick.",
"campaign_action_rest_and_recuperation_desc": "Take time to let soldiers tend wounds and rest. Each Legionnaire marks a tick in any harm row. Once a row’s healing ticks are full, erase the ticks and injuries in that row. If you wound a Mercy, one Specialist gains an extra healing tick. Finally, heal any Mercies wounded before this recuperation action.",
"campaign_actions": "Campaign Actions",
"campaign_actions": "Akcja operacyjna",
"campaign_actions_desc": "After missions, perform <b>campaign actions</b> based on <b>morale</b> (ask the Marshal). Take additional campaign actions by spending <b>supply</b> one-for-one. Spend a <b>supply</b> to boost an action in addition to any other costs. You can do each action once per campaign phase (except <b>acquire assets</b> and <b>long-term projects</b>).",
"cancel": "Anuluj",
"cautious": "Cautious",
"channels": "Channels",
"channels": "Pozyskiwanie",
"channels_desc": "You may spend channels uses to acquire an asset for your squad in a flashback. Roll sway to determine quality. You can spend additional uses to improve the quality as per supply rules. Such assets are temporary or \"on loan\" and will go away when the mission ends.",
"character": "Postać",
"chat_image": "Image to show alongside chat rolls",
"choose_sheet_type": "Choose the sheet type.",
"chosen": "Chosen",
"chosen_abilities": "Chosen abilities",
"chosen_advancement": "Chosen advancement",
"chosen": "Namaszczony",
"chosen_abilities": "Zdolności Namaszczonego",
"chosen_advancement": "Rozwinięcia Namaszczonego",
"chosen_horned_one": "The Horned One",
"chosen_horned_one_name": "Chosen of the Horned One",
"chosen_n_broken": "Chosen & Broken",
"chosen_name": "Chosen Name",
"chosen_n_broken": "Namaszczony i Splugawiony",
"chosen_name": "Imię Namaszczonego",
"chosen_shreya": "Shreya",
"chosen_shreya_name": "Shreya, Chosen of Asrika",
"chosen_xp_complete": "You complete a campaign.",
"chosen_xp_first": "You first select your Chosen.",
"chosen_xp_first": "Najpierw wybierz swojego Namaszczonego",
"chosen_xp_four": "You complete four missions of your Chosen’s <b>favor</b> type.",
"chosen_xp_top": "Your Chosen gains a <b>Chosen ability</b> when...",
"chosen_zora": "Zora",
@@ -160,14 +160,14 @@
"clever": "Clever",
"clock_name": "Clock name",
"clocks": "Clocks",
"cold": "Cold",
"cold": "Nieczuły",
"colorful": "Colorful",
"comely": "Comely",
"complete": "Complete",
"consort": "Consort",
"consort": "Bratanie",
"consort_desc": "Consort with friends, contacts, or connections from your heritage and background to gain access to resources, information, people, or places. Make a good impression.",
"controlled": "Controlled",
"corruption": "Corruption",
"controlled": "Kontrolowane",
"corruption": "Zepsucie",
"crisp": "Crisp",
"curious": "Curious",
"dangerous": "Dangerous",
@@ -183,29 +183,29 @@
"discipline": "Discipline",
"discipline_desc": "Discipline a fellow soldier; command obedience using force of personality; intimidate or threaten.",
"divine": "Divine",
"divine_ability_abominable_science": "Abominable Science",
"divine_ability_abominable_science": "Plugawa Nauka",
"divine_ability_abominable_science_desc": "Blighter’s chirurgeons learn to stitch writhing undead together functionally. Horrors can appear in any mission.",
"divine_ability_anointed_horned": "Anointed",
"divine_ability_anointed_horned": "Wywyższenie",
"divine_ability_anointed_horned_desc": "Holy, Mystic, and Wild missions all grant mission favor. Start with 1 mission favor filled in.",
"divine_ability_anointed_shreya": "Anointed",
"divine_ability_anointed_shreya": "Wywyższenie",
"divine_ability_anointed_shreya_desc": "Holy, Mystic, and Mercy missions all grant mission favor. Start with 1 mission favor filled in.",
"divine_ability_anointed_zora": "Anointed",
"divine_ability_anointed_zora": "Wywyższenie",
"divine_ability_anointed_zora_desc": "Holy, Mystic, and Glory missions all grant favor. Start with 1 mission favor already marked.",
"divine_ability_asrika’s_blessing": "Asrika’s Blessing",
"divine_ability_asrika’s_blessing": "Błogosławieństwo Asriki ",
"divine_ability_asrika’s_blessing_desc": "Legionnaires always take 1 less corruption.",
"divine_ability_asrika’s_mercy": "Asrika’s Mercy",
"divine_ability_asrika’s_mercy": "Łaska Asriki",
"divine_ability_asrika’s_mercy_desc": "When the Legion recuperates, place 1 additional healing tick on all Legionnaires.",
"divine_ability_asrika’s_tears": "Asrika’s Tears",
"divine_ability_asrika’s_tears": "Łzy Asrik",
"divine_ability_asrika’s_tears_desc": "When you mourn, you feel a profound sense of peace. Liberty campaign actions provide +1 morale and additional -1 stress.",
"divine_ability_attrition_strategies": "Attrition Strategies",
"divine_ability_attrition_strategies": "Strategia wyniszczenia",
"divine_ability_attrition_strategies_desc": "Blighter attacks & poisons supply lines. Supply mission engagement rolls take -1d.",
"divine_ability_battle-saint": "Battle-Saint",
"divine_ability_battle-saint": "Żarliwość bitewna",
"divine_ability_battle-saint_desc": "Shreya is threat 5 and she has potency against all opponents.",
"divine_ability_blood_of_fire": "Blood of Fire",
"divine_ability_blood_of_fire": "Ognista Krew ",
"divine_ability_blood_of_fire_desc": "When you spend Religious Supply on a mission, all Legionnaires equip Fire Oil (1 load).",
"divine_ability_blood_of_the_chosen": "Blood of the Chosen",
"divine_ability_blood_of_the_chosen": "Krew Namaszczonego",
"divine_ability_blood_of_the_chosen_desc": "When you spend a Religious Supply, you also get a sanctified melee weapon on that mission. It is potent against undead. Start with 1 free Religious Supply.",
"divine_ability_book_of_hours": "Book of Hours",
"divine_ability_book_of_hours": "Brewiarz",
"divine_ability_book_of_hours_desc": "All Specialists start with 2 extra ranks of actions.",
"divine_ability_cruel_gluttony": "Cruel Gluttony",
"divine_ability_cruel_gluttony_desc": "Blighter crafts fluids that brew acid inside undead. Gut-Sacks can appear in any mission.",
@@ -261,9 +261,9 @@
"divine_ability_star_of_the_dawn_desc": "When you advance, roll pressure as if 1 lower.",
"divine_ability_storm_riding": "Storm Riding",
"divine_ability_storm_riding_desc": "Shadow Witches learn to use the lightning forces inside Burned to jump from body to body, allowing them to escape death.",
"divine_ability_the_changing_curse": "The Changing Curse",
"divine_ability_the_changing_curse": "Klątwa Przemiany",
"divine_ability_the_changing_curse_desc": "Shadow Witches twist the living. Transformed can appear in any mission.",
"divine_ability_the_coven": "The Coven",
"divine_ability_the_coven": "Sabat",
"divine_ability_the_coven_desc": "Breaker binds hexed souls into still-living bodies to craft acolytes. Shadow Witches can appear in any mission.",
"divine_ability_the_forge": "The Forge",
"divine_ability_the_forge_desc": "Render forges blades of the fallen and cinderblood into Elites. Thorns can appear in any mission.",
@@ -409,21 +409,21 @@
"item_+2_utility": "+2 Utility. Mark below.",
"item_2_fine_pistols": "2 Fine Pistols",
"item_ammo": "Ammo",
"item_armor": "Armor",
"item_armor": "Pancerz",
"item_bandolier": "Bandolier",
"item_battlefield_banner": "Battlefield Banner",
"item_black_arrows": "Black Arrows",
"item_black_shot": "Black Shot",
"item_battlefield_banner": "Sztandar",
"item_black_arrows": "Czarna Strzała",
"item_black_shot": "Czarna Kula",
"item_books_n_scrolls": "Books & Scrolls",
"item_camo_gear": "Camo Gear",
"item_climbing_kit": "Climbing Kit",
"item_compass_&_maps": "Compass & Maps",
"item_cooking_kit": "Cooking Kit",
"item_crimson_shot": "Crimson Shot",
"item_camo_gear": "Zestaw do kamuflażu",
"item_climbing_kit": "Zestaw wspinaczkowy",
"item_compass_&_maps": "Kompas i mapy",
"item_cooking_kit": "Zestaw kucharski\n",
"item_crimson_shot": "szkarłatna kula",
"item_family_weapon": "Family Weapon",
"item_fine_armor": "Fine Armor",
"item_fine_bow_&_arrows": "Fine Bow & Arrows",
"item_fine_compass_&_maps": "Fine Compass & Maps",
"item_fine_bow_&_arrows": "Wyśmienity łuk i strzały",
"item_fine_compass_&_maps": "Wyśmienity kompas i mapy",
"item_fine_hand_weapon": "Fine Hand Weapon",
"item_fine_heavy_armor": "Fine Heavy Armor",
"item_fine_heavy_weapon": "Fine Heavy Weapon",
@@ -548,25 +548,25 @@
"personality": "Personality",
"pick_one_kit": "Pick one: Medic, Climbing, Cooking, Repair, Soldier’s, or Wrecking.",
"playbook": "Playbook",
"playbook_ability_against_the_darkness": "Against the Darkness",
"playbook_ability_against_the_darkness": "Na Przekór Ciemnościom",
"playbook_ability_against_the_darkness_desc": "You and all squadmates that can see you gain +1d to resist fear and corruption.",
"playbook_ability_akimbo": "Akimbo",
"playbook_ability_akimbo": "Palba",
"playbook_ability_akimbo_desc": "When dueling at close range with two pistols, gain potency.",
"playbook_ability_ambush": "Ambush",
"playbook_ability_ambush_desc": "When you attack from hiding or spring a trap, you get +1d.",
"playbook_ability_attache": "Attaché",
"playbook_ability_attache": "Delegat",
"playbook_ability_attache_desc": "You may deploy on any mission, even outside the usual Specialist caps. Gain this ability for free when you become a Medic.",
"playbook_ability_backup": "Backup",
"playbook_ability_backup": "Wsparcie",
"playbook_ability_backup_desc": "When you protect a squadmate, resist with +1d. When you assist someone, their pushes only cost 1 stress.",
"playbook_ability_bulwark": "Bulwark",
"playbook_ability_bulwark": "Bastion",
"playbook_ability_bulwark_desc": "You can spend anchor uses as special armor against consequences to a squad you are defending.",
"playbook_ability_cavalry": "Cavalry",
"playbook_ability_cavalry": "Kawalerzysta",
"playbook_ability_cavalry_desc": "If the Quartermaster has Horses uses available, all members of your squad start missions with mounts. You gain +1d to maneuver while mounted.",
"playbook_ability_chemist": "Chemist",
"playbook_ability_chemist": "Aptekarz",
"playbook_ability_chemist_desc": "You have training in Orite alchemical medicine. You may equip an Alchemical Bandolier on each mission.",
"playbook_ability_cover_fire": "Cover Fire",
"playbook_ability_cover_fire": "ogień osłonowy",
"playbook_ability_cover_fire_desc": "If you set up someone with shoot or provide covering fire, they gain potency on their next action.",
"playbook_ability_crimson_shot": "Crimson Shot",
"playbook_ability_crimson_shot": "szkarłatna kula",
"playbook_ability_crimson_shot_desc": "You’re authorized to bring one Crimson Seeker shell on missions. Firing it counts as a threat 4 attack, and you must mark a trauma.",
"playbook_ability_daredevil": "Daredevil",
"playbook_ability_daredevil_desc": "When you make a desperate roll, gain +1d.",
@@ -704,7 +704,7 @@
"rig": "Rig",
"rig_desc": "Rig together mechanical solutions; disable, repair, or create mechanisms; disable a trap, pick a lock; build fortifications; repair siege weapons.",
"risky": "Risky",
"role_commander": "Commander",
"role_commander": "Legat",
"role_lorekeeper": "Lorekeeper",
"role_marshal": "Marshal",
"role_quartermaster": "Quartermaster",
@@ -749,8 +749,8 @@
"soft": "Soft",
"soldier_promotion_desc": "You are about to promote this Soldier to a Specialist. In order to become a Specialist of a certain kind, all starting action ratings must be greater than or equal to the action ratings of a starting Specialist of this type. You gain a rank in the corresponding Specialist ability, up to a maximum of 3.",
"special": "Special",
"special_abilities": "Special abilities",
"special_ability": "Special ability",
"special_abilities": "Zdolności specjalne ",
"special_ability": "Zdolność specjalna",
"specialist": "Specialist",
"specialist_action": "Specialist action",
"specialists": "Specialists",
@@ -762,7 +762,7 @@
"spy_bortis": "Bortis",
"spy_bortis_desc": "A grizzled Zemyati, Bortis is an asset on and off the field. Rumor is that if he lives, he’ll become the next Spymaster.",
"spy_bortis_specialty": "When Bortis rolls on <span class=\"sheet-smallcaps\">expand network</span> assignments, he generates <b>+1 segment</b> on his rolls.",
"spy_crimson_vexing_gale": "Crimson Vexing Gale",
"spy_crimson_vexing_gale": "Karmazynowe Uciążliwe Wichry",
"spy_crimson_vexing_gale_desc": "Little is known about this Panyar, except that their eyes reflect silver beneath a hood. They come and go as they please. Many rumors surround their past.",
"spy_crimson_vexing_gale_specialty": "Does not <b>wound</b> on any mission.",
"spy_igrid": "Igrid",
@@ -821,7 +821,7 @@
"trained": "Trained",
"trait_artisan": "Artisan",
"trait_artisan_desc": "You can have up to 4 <b>rig</b>.",
"trait_bold": "Bold",
"trait_bold": "Zuchwalec",
"trait_bold_desc": "<b>+1d</b> to resist on <b>desperate</b> actions.",
"trait_connected": "Connected",
"trait_connected_desc": "<b>+1 sway</b> (max 3).",
@@ -853,7 +853,7 @@
"trait_warm_desc": "<b>+1 consort</b> (max 2).",
"trauma": "Trauma",
"trauma:": "Trauma:",
"trauma_boxes": "Trauma boxes",
"trauma_boxes": "Pola traumy",
"type": "Typ",
"unstable": "Unstable",
"unstoppable": "Unstoppable",
+85 -22
View File
@@ -80,8 +80,9 @@
<tr>
<td class=".sheet-chkfiller"><td>
<div class="sheet-cdiv">
<td><p>STR</p></td>
<td><input type="number" name="attr_STR" /></td>
<td><input type="number" value="10" name="attr_STR" /></td>
<td><button class="sheet-characteristic-roll sheet-plain" style="width: 75px" type="roll" value="&{template:characteristicRoll} {{name=@{Name}}} {{skillvalue=@{STR}}} {{success=[[ceil(@{STR}*?{Multiplier|Normal, 5|Easy, 10|Difficult, 5/2|x4, 4|x3, 3|x2, 2|x1, 1})]]}} {{roll=[[1d100]]}} {{skillname=Strength}}">Effort</button></td>
<td><p>Dmg. Bonus</p></td>
<td colspan="3">
@@ -91,7 +92,7 @@
<tr>
<td class=".sheet-chkfiller"><td>
<td><p>CON</p></td>
<td><input type="number" name="attr_CON" /></td>
<td><input type="number" value="10" name="attr_CON" /></td>
<td><button class="sheet-characteristic-roll sheet-plain" style="width: 75px" type="roll" value="&{template:characteristicRoll} {{name=@{Name}}} {{skillvalue=@{CON}}} {{success=[[ceil(@{CON}*?{Multiplier|Normal, 5|Easy, 10|Difficult, 5/2|x4, 4|x3, 3|x2, 2|x1, 1})]]}} {{roll=[[1d100]]}} {{skillname=Constitution}}">Stamina</button></td>
<td>
<input type="checkbox" class="sheet-showstrike-rank" name="attr_showstrike-rank" checked="checked" style="display: none">
@@ -110,7 +111,7 @@
<tr>
<td class=".sheet-chkfiller"><td>
<td><p>SIZ</p></td>
<td><input type="number" name="attr_SIZ" /></td>
<td><input type="number" value="10" name="attr_SIZ" /></td>
<td ></td>
<td>
<input type="checkbox" class="sheet-showstrike-rank" name="attr_showstrike-rank" checked="checked" style="display: none">
@@ -131,7 +132,7 @@
<tr>
<td class=".sheet-chkfiller"><td>
<td><p>INT</p></td>
<td><input type="number" name="attr_INT" /></td>
<td><input type="number" value="10" name="attr_INT" /></td>
<td><button class="sheet-characteristic-roll sheet-plain" style="width: 75px" type="roll" value="&{template:characteristicRoll} {{name=@{Name}}} {{skillvalue=@{INT}}} {{success=[[ceil(@{INT}*?{Multiplier|Normal, 5|Easy, 10|Difficult, 5/2|x4, 4|x3, 3|x2, 2|x1, 1})]]}} {{roll=[[1d100]]}} {{skillname=Intelligence}}">Idea</button></td>
<td><p>MOV</p></td><td><input type="number" name="attr_mov" /></td>
<td></td>
@@ -141,7 +142,7 @@
<tr>
<td ><input type="checkbox" name="att_power-check" /><td>
<td><p>POW</p></td>
<td><input class="sheet-plain" type="number" name="attr_POW" /></td>
<td><input class="sheet-plain" value="10" type="number" name="attr_POW" /></td>
<td><button class="sheet-characteristic-roll sheet-plain" style="width: 75px" type="roll" value="&{template:characteristicRoll} {{name=@{Name}}} {{skillvalue=@{POW}}} {{success=[[ceil(@{POW}*?{Multiplier|Normal, 5|Easy, 10|Difficult, 5/2|x4, 4|x3, 3|x2, 2|x1, 1})]]}} {{roll=[[1d100]]}} {{skillname=Power}}">Luck</button></td>
<td><p>Hit Pts.</p></td>
<td><input type="number" name="attr_cur_hp" />
@@ -152,7 +153,7 @@
<tr>
<td class=".sheet-chkfiller"><td>
<td><p>DEX</p></td>
<td><input type="number" name="attr_DEX" /></td>
<td><input type="number" value="10" name="attr_DEX" /></td>
<td><button class="sheet-characteristic-roll sheet-plain" style="width: 75px" type="roll" value="&{template:characteristicRoll} {{name=@{Name}}} {{skillvalue=@{DEX}}} {{success=[[ceil(@{DEX}*?{Multiplier|Normal, 5|Easy, 10|Difficult, 5/2|x4, 4|x3, 3|x2, 2|x1, 1})]]}} {{roll=[[1d100]]}} {{skillname=Dexterity}}">Agility</button></td>
<td><p>Power Pts.</p></td>
<td><input type="number" name="attr_cur_mp" />
@@ -163,7 +164,7 @@
<tr>
<td class=".sheet-chkfiller"><td>
<td><p>APP</p></td>
<td><input type="number" name="attr_APP" /></td>
<td><input type="number" value="10" name="attr_APP" /></td>
<td><button class="sheet-characteristic-roll sheet-plain" style="width: 75px; font-size:15px" type="roll" value="&{template:characteristicRoll} {{name=@{Name}}} {{skillvalue=@{APP}}} {{success=[[ceil(@{APP}*?{Multiplier|Normal, 5|Easy, 10|Difficult, 5/2|x4, 4|x3, 3|x2, 2|x1, 1})]]}} {{roll=[[1d100]]}} {{skillname=Appearance}}">Charisma</button></td>
<div class="sheet-hpbl">
@@ -193,9 +194,9 @@
</td>
<td>
<input type="checkbox" class="sheet-showedufld" name="attr_showedufld" checked="checked" style="display: none">
<div class="sheet-edufld"><input type="number" name="attr_EDU" /></div>
<div class="sheet-edufld"><input type="number" value="10" name="attr_EDU" /></div>
</td>
<td >
<td>
<input type="checkbox" class="sheet-showedufld" name="attr_showedufld" checked="checked" style="display: none">
<div class="sheet-edufld">
<button class="sheet-characteristic-roll sheet-plain" style="width: 75px" type="roll" value="&{template:characteristicRoll} {{name=@{Name}}} {{skillvalue=@{EDU}}} {{success=[[ceil(@{EDU}*?{Multiplier|Normal, 5|Easy, 10|Difficult, 5/2|x4, 4|x3, 3|x2, 2|x1, 1})]]}} {{roll=[[1d100]]}} {{skillname=Education}}">Know</button>
@@ -1518,70 +1519,78 @@
<table>
<thead class="sheet-header-text">
<tr>
<th>Location</th><th>Armor</th><th>AP</th><th>Max <br />HP</th><th>Cur. <br /> HP</th>
<th>Location</th><th>Armor</th><th>AP</th><th>Cur. <br />HP</th><td> </td><th>Max <br /> HP</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="attr_armor-name" class="sheet-armor-name"/></td>
<td class="sheet-loc-text">Right Leg</td>
<td><input type="text" name="attr_r_leg_armor_name" class="sheet-armor-name"/></td>
<td><input type="number" name="attr_r_Leg_ap" /></td>
<td><input type="number" name="attr_r_leg_max_hp" /></td>
<td><input type="number" name="attr_r_leg_cur_hp" /></td>
<td>/</td>
<td><input type="number" name="attr_r_leg_max_hp" /></td>
</tr>
<tr>
<td class="sheet-loc-text">Left Leg</td>
<td><input type="text" name="attr_l_leg_armor_name" class="sheet-armor-name"/></td>
<td><input type="number" name="attr_l_Leg_ap" /></td>
<td><input type="number" name="attr_l_leg_max_hp" /></td>
<td><input type="number" name="attr_l_leg_cur_hp" /></td>
<td>/</td>
<td><input type="number" name="attr_l_leg_max_hp" /></td>
</tr>
<tr>
<td class="sheet-loc-text">Abdomen</td>
<td ><input type="text" name="attr_abd_armor_name" class="sheet-armor-name"/></td>
<td ><input type="number" name="attr_abd_ap" /></td>
<td ><input type="number" name="attr_abd_max_hp" /></td>
<td ><input type="number" name="attr_abd_cur_hp" /></td>
<td>/</td>
<td ><input type="number" name="attr_abd_max_hp" /></td>
</tr>
<tr>
<td class="sheet-loc-text">Chest</td>
<td><input type="text" name="attr_chst_armor_name" class="sheet-armor-name"/></td>
<td><input type="number" name="attr_chst_ap" /></td>
<td><input type="number" name="attr_chst_max_hp" /></td>
<td><input type="number" name="attr_chst_cur_hp" /></td>
<td>/</td>
<td><input type="number" name="attr_chst_max_hp" /></td>
</tr>
<tr>
<td class="sheet-loc-text">Right Arm</td>
<td ><input type="text" name="attr_r_arm_armor_name" class="sheet-armor-name"/></td>
<td><input type="number" name="attr_r_arm_ap" /></td>
<td><input type="number" name="attr_r_arm_max_hp" /></td>
<td><input type="number" name="attr_r_arm_cur_hp" /></td>
<td>/</td>
<td><input type="number" name="attr_r_arm_max_hp" /></td>
</tr>
<tr>
<td class="sheet-loc-text">Left Arm</td>
<td><input type="text" name="attr_l_arm_armor_name" class="sheet-armor-name"/></td>
<td><input type="number" name="attr_l_arm_ap" /></td>
<td><input type="number" name="attr_l_arm_max_hp" /></td>
<td><input type="number" name="attr_l_arm_cur_hp" /></td>
<td>/</td>
<td><input type="number" name="attr_l_arm_max_hp" /></td>
</tr>
<tr>
<td class="sheet-loc-text">Head</td>
<td><input type="text" name="attr_hd_armor_name" class="sheet-armor-name"/></td>
<td><input type="number" name="attr_hd_ap" /></td>
<td><input type="number" name="attr_hd_max_hp" /></td>
<td><input type="number" name="attr_hd_cur_hp" /></td>
<td>/</td>
<td><input type="number" name="attr_hd_max_hp" /></td>
</tr>
</tbody>
</table>
<fieldset class="repeating_hlocations">
<table>
<tr>
<td><input type="text" name="attr_hloc" style="width: 100px" /></td>
<td><input type="text" name="attr_hloc" style="width: 58px" /></td>
<td><input class="sheet-armor-name" type="text" name="attr_atype" /></td>
<td><input type="number" name="attr_app" /></td>
<td><input type="number" name="attr_mhp"/></td>
<td><input type="number" name="attr_chp" /></td>
<td>/ </td>
<td><input type="number" name="attr_mhp"/></td>
</tr>
</table>
</fieldset>
@@ -1927,12 +1936,12 @@
{{/^rollBetween() roll fumble 100}}
{{#rollLess() roll success}}
{{#^rollGreater() roll success}}
<tr>
<td class="template_label"><b>Damage:</b></td>
<td style="text-align: right"; class="template_value">{{tot}}<td>
</tr>
{{/rollLess() roll success}}
{{/^rollGreater() roll success}}
</table>
</rolltemplate>
@@ -2255,3 +2264,57 @@ on("change:str change:siz", function() { // stat names must use lower case here
});
});
</script>
<script type="text/worker"> // Skill Category Bonus
on("change:STR change:CON change:SIZ change:INT change:POW change:DEX change:APP change:EDU", function() { // stat names must use lower case here
getAttrs(["STR", "CON", "SIZ", "INT", "POW", "DEX", "APP", "EDU"], function(pvalue) { // from here on, use the actual case of the stat names.
var curStrength = parseInt(pvalue.STR);
var curConstitution = parseInt(pvalue.CON);
var curSize = parseInt(pvalue.SIZ);
var curIntelligence = parseInt(pvalue.INT);
var curPower = parseInt(pvalue.POW);
var curDexterity = parseInt(pvalue.DEX);
var curAppearance = parseInt(pvalue.APP);
var curEducation = parseInt(pvalue.EDU);
//Primary Bonus
var P_DEXBonus = Math.ceil((curDexterity-10));
var P_INTBonus = Math.ceil((curIntelligence-10));
//Secondary Bonus
var S_INTBonus = Math.ceil(((curIntelligence-10)/2));
var S_STRBonus = Math.ceil(((curStrength-10)/2));
var S_POWBonus = Math.ceil(((curPower-10)/2));
var S_APPBonus = Math.ceil(((curAppearance-10)/2));
var S_EDUBonus = Math.ceil(((curEducation-10)/2));
var S_CONBonus = Math.ceil(((curConstitution-10)/2));
//Size Penalty
var SIZPenalty = Math.ceil((10-curSize));
{
var CombatBonus = Math.ceil((P_DEXBonus+S_INTBonus+S_STRBonus));
var CommunicationBonus = Math.ceil((P_INTBonus+S_POWBonus+S_APPBonus));
var ManipulationBonus = Math.ceil((P_DEXBonus+S_INTBonus+S_STRBonus));
var MentalBonus = Math.ceil((P_INTBonus+S_POWBonus+S_EDUBonus));
var PerceptionBonus = Math.ceil((P_INTBonus+S_POWBonus+S_CONBonus));
var PhysicalBonus = Math.ceil((P_DEXBonus+S_STRBonus+S_CONBonus+SIZPenalty));
}
setAttrs({
Combat: CombatBonus
});
setAttrs({
Communication: CommunicationBonus
});
setAttrs({
Manipulation: ManipulationBonus
});
setAttrs({
Mental: MentalBonus
});
setAttrs({
Perception: PerceptionBonus
});
setAttrs({
Physical: PhysicalBonus
});
});
});
</script>
@@ -1,71 +1,71 @@
{
"Name: ": "Name:",
"Alignment:": "Alignment:",
"Law": "Law",
"Alignment:": "Gesinnung:",
"Law": "Rechtschaffen",
"Neutral": "Neutral",
"Chaos": "Chaos",
"Player:": "Player:",
"Experience:": "Experience:",
"Class:": "Class:",
"Warrior": "Warrior",
"Rogue": "Rogue",
"Mage": "Mage",
"Base Attack Bonus:": "Base Attack Bonus:",
"Level:": "Level:",
"Chaos": "Chaotisch",
"Player:": "Spieler:",
"Experience:": "Erfahrungspunkte:",
"Class:": "Klasse:",
"Warrior": "Kämpfer",
"Rogue": "Schurke",
"Mage": "Magier",
"Base Attack Bonus:": "Grundangriffsbonus:",
"Level:": "Stufe:",
"Initiative:": "Initiative:",
"Strength": "Strength",
"melee to hit": "melee to hit",
"melee damage": "melee damage",
"Dexterity": "Dexterity",
"ranged to hit": "ranged to hit",
"armor class": "armor class",
"initiative": "initiative",
"Constitution": "Constitution",
"hit points per level": "hit points per level",
"Intelligence": "Intelligence",
"languages known": "languages known",
"Wisdom": "Wisdom",
"save vs mind control": "save vs mind control",
"Strength": "Stärke",
"melee to hit": "Angriffsbonus",
"melee damage": "Schadensbonus",
"Dexterity": "Geschicklichkeit",
"ranged to hit": "Fernkampfbonus",
"armor class": "Rüstungsklasse",
"initiative": "Initiative",
"Constitution": "Konstitution",
"hit points per level": "Trefferpunkte pro Stufe",
"Intelligence": "Intelligenz",
"languages known": "Sprachen",
"Wisdom": "Weisheit",
"save vs mind control": "Rettungswurf gegen Beeinflussung",
"Charisma": "Charisma",
"max # of allies": "max # of allies",
"Saving Throws": "Saving Throws",
"Poison": "Poison",
"Breath Weapon": "Breath Weapon",
"Polymorph": "Polymorph",
"Spell": "Spell",
"Magic Item": "Magic Item",
"Class Abilities": "Class Abilities",
"Traits": "Traits",
"Equipment": "Equipment",
"Armor Class": "Armor Class",
"Fortune Points": "Fortune Points",
"Hit Points": "Hit Points",
"Current": "Current",
"Weapons": "Weapons",
"max # of allies": "max. Anzahl der Gefolgsleute",
"Saving Throws": "Rettungswürfe",
"Poison": "Gift",
"Breath Weapon": "Odem",
"Polymorph": "Verwandlung",
"Spell": "Zauber",
"Magic Item": "Magischer Gegenstand",
"Class Abilities": "Klassenfähigkeiten",
"Traits": "Talente",
"Equipment": "Ausrüstung",
"Armor Class": "Rüstungsklasse",
"Fortune Points": "Schicksalspunkte",
"Hit Points": "Trefferpunkte",
"Current": "Momentan",
"Weapons": "Waffen",
"Name": "Name",
"To hit": "To hit",
"Dice": "Dice",
"Damage": "Damage",
"Skills": "Skills",
"Str": "Str",
"Dex": "Dex",
"Con": "Con",
"Int": "Int",
"Wis": "Wis",
"Cha": "Cha",
"Attribute": "Attribute",
"To hit": "Angriffsbonus",
"Dice": "Schaden",
"Damage": "Schadensbonus",
"Skills": "Fertigkeiten",
"Str": "ST",
"Dex": "GE",
"Con": "KO",
"Int": "IN",
"Wis": "WE",
"Cha": "CH",
"Attribute": "Attribut",
"Bonus": "Bonus",
"Easy": "Easy",
"Easy": "Einfach",
"Normal": "Normal",
"Hard": "Hard",
"Very Hard": "Very Hard",
"Impossible": "Impossible",
"Difficulty": "Difficulty",
"Magic": "Magic",
"Cantrips:": "Cantrips:",
"Spells:": "Spells:",
"Description": "Description",
"Rituals:": "Rituals:",
"Allies and Henchmen": "Allies and Henchmen",
"Notes and History": "Notes and History"
"Hard": "Schwer",
"Very Hard": "Sehr schwer",
"Impossible": "Legendär",
"Difficulty": "Schwierigkeit",
"Magic": "Zauber",
"Cantrips:": "Zaubertricks:",
"Spells:": "Zaubersprüche:",
"Description": "Beschreibung",
"Rituals:": "Rituale:",
"Allies and Henchmen": "Gefolgsleute und Verbündete",
"Notes and History": "Hintergrund und Notizen"
}
+2 -2
View File
@@ -45,7 +45,7 @@
"binding_oil": "Óleo Adesivo",
"boat": "Barco",
"boat_carriage_other": "Barco — Carruagem — Outro",
"bold": "ousado",
"bold": "negrito",
"bolster": "Disseminar a reputação do seu bando ou desenvolver uma nova.",
"bonus_die": "Dado Extra",
"bonusdice": "Dados Extras",
@@ -1043,7 +1043,7 @@
"resolve_description": "Resistir a consequências decorrentes de grande esforço mental ou que demandem a aplicação de força de vontade.",
"risky": "Arriscada",
"roll-inf": "rolar",
"roll": "rolagem",
"roll": "rola",
"roll_engagement": "Rolagem de Abertura",
"roll_for": "fazem sua rolagem de",
"roll_fortune": "Rol. de Sorte",
+135 -135
View File
@@ -1,6 +1,6 @@
@import url('https://fonts.googleapis.com/css?family=Fredoka+One&display=swap');
.sheet-main {
.main {
display: none;
width: 800px;
grid-gap: 4px;
@@ -14,95 +14,95 @@
}
/*-- sheet type switch --*/
.sheet-choose, .sheet-crew, .sheet-role, .sheet-agent {display: none;}
input[name=attr_sheet_type][value=choose] ~ .sheet-choose {
.choose, .crew, .role, .agent {display: none;}
input[name=attr_sheet_type][value=choose] ~ .choose {
display:block;
}
input[name=attr_sheet_type][value=crew] ~ .sheet-crew {
input[name=attr_sheet_type][value=crew] ~ .crew {
display:grid;
}
input[name=attr_sheet_type][value=role] ~ .sheet-role {
input[name=attr_sheet_type][value=role] ~ .role {
display:block;
}
input[name=attr_sheet_type][value=agent] ~ .sheet-agent {
input[name=attr_sheet_type][value=agent] ~ .agent {
display:grid;
}
.sheet-agent_class, .sheet-role_class, .sheet-crew_class {display:none;}
input[name=attr_fsheet_type][value=agent] ~ .sheet-agent_class {
.agent_class, .role_class, .crew_class {display:none;}
input[name=attr_fsheet_type][value=agent] ~ .agent_class {
display:block;
}
input[name=attr_fsheet_type][value=role] ~ .sheet-role_class {
input[name=attr_fsheet_type][value=role] ~ .role_class {
display:block;
}
input[name=attr_fsheet_type][value=crew] ~ .sheet-crew_class {
input[name=attr_fsheet_type][value=crew] ~ .crew_class {
display:block;
}
input[name=attr_class_items] ~ ul {
display: none;
}
input[name=attr_class_items][value=Controller] ~ ul.sheet-controller {
input[name=attr_class_items][value=Controller] ~ ul.controller {
display: block;
}
input[name=attr_class_items][value=Engineer] ~ ul.sheet-eng {
input[name=attr_class_items][value=Engineer] ~ ul.eng {
display: block;
}
input[name=attr_class_items][value=Adept] ~ ul.sheet-adept {
input[name=attr_class_items][value=Adept] ~ ul.adept {
display: block;
}
input[name=attr_class_items][value=Shadow] ~ ul.sheet-shadow {
input[name=attr_class_items][value=Shadow] ~ ul.shadow {
display: block;
}
input[name=attr_class_items][value=Sniper] ~ ul.sheet-sniper {
input[name=attr_class_items][value=Sniper] ~ ul.sniper {
display: block;
}
input[name=attr_class_items][value=Hacker] ~ ul.sheet-hacker {
input[name=attr_class_items][value=Hacker] ~ ul.hacker {
display: block;
}
input[name=attr_class_items][value=Soldier] ~ ul.sheet-soldier {
input[name=attr_class_items][value=Soldier] ~ ul.soldier {
display: block;
}
input[name=attr_class_power] ~ ul {
display: none;
}
input[name=attr_class_power][value=Controller] ~ ul.sheet-controller {
input[name=attr_class_power][value=Controller] ~ ul.controller {
display: block;
}
input[name=attr_class_power][value=Engineer] ~ ul.sheet-eng {
input[name=attr_class_power][value=Engineer] ~ ul.eng {
display: block;
}
input[name=attr_class_power][value=Adept] ~ ul.sheet-adept {
input[name=attr_class_power][value=Adept] ~ ul.adept {
display: block;
}
input[name=attr_class_power][value=Shadow] ~ ul.sheet-shadow {
input[name=attr_class_power][value=Shadow] ~ ul.shadow {
display: block;
}
input[name=attr_class_power][value=Sniper] ~ ul.sheet-sniper {
input[name=attr_class_power][value=Sniper] ~ ul.sniper {
display: block;
}
input[name=attr_class_power][value=Hacker] ~ ul.sheet-hacker {
input[name=attr_class_power][value=Hacker] ~ ul.hacker {
display: block;
}
input[name=attr_class_power][value=Soldier] ~ ul.sheet-soldier {
input[name=attr_class_power][value=Soldier] ~ ul.soldier {
display: block;
}
.sheet-director, .sheet-qm, .sheet-personnel, .sheet-ci, .sheet-analyst {display: none;}
input[name=attr_class_role][value=Director] ~ .sheet-director {
.director, .qm, .personnel, .ci, .analyst {display: none;}
input[name=attr_class_role][value=Director] ~ .director {
display: block;
}
input[name=attr_class_role][value=Quartermaster] ~ .sheet-qm {
input[name=attr_class_role][value=Quartermaster] ~ .qm {
display: block;
}
input[name=attr_class_role][value=Personnel] ~ .sheet-personnel {
input[name=attr_class_role][value=Personnel] ~ .personnel {
display: block;
}
input[name=attr_class_role][value=CounterIntel] ~ .sheet-ci {
input[name=attr_class_role][value=CounterIntel] ~ .ci {
display: block;
}
input[name=attr_class_role][value=Analyst] ~ .sheet-analyst {
input[name=attr_class_role][value=Analyst] ~ .analyst {
display: block;
}
/*----------------- GENERAL CSS ------------------*/
@@ -112,10 +112,10 @@ textarea {
width: 90%;
height: 85%;
}
label.sheet-lbl {
label.lbl {
display: inline-block;
}
.sheet-section {
.section {
padding: 5px;
border-style: solid;
border-color: #888;
@@ -124,55 +124,55 @@ label.sheet-lbl {
position: relative;
}
.sheet-flex-col {
.flex-col {
display: flex;
flex-flow: row wrap;
/*justify-content: flex-start;*/
}
.sheet-flex-center {
.flex-center {
align-items: center;
justify-content: center;
}
.sheet-section * + h3 {
.section * + h3 {
margin-top: 1em;
}
/*------------- Section-specific CSS -------------*/
.sheet-header {
.header {
grid-area: header;
flex-direction: column;
}
.sheet-skill { grid-area: skill; }
.sheet-insight, .sheet-hqup { grid-area: ins; }
.sheet-prowess, .sheet-qup { grid-area: prw; }
.sheet-resolve, .sheet-crewup { grid-area: res; }
.sheet-common { grid-area: common; }
.sheet-power { grid-area: power; }
.sheet-attack { grid-area: attack; }
.sheet-inv { grid-area: inv; }
.sheet-misc { grid-area: misc; }
.sheet-healing { grid-area: healing;}
.sheet-harm { grid-area: harm;}
.sheet-armour { grid-area: armour;}
.sheet-iskill { grid-area: iskill;}
.sheet-footer {
.skill { grid-area: skill; }
.insight, .hqup { grid-area: ins; }
.prowess, .qup { grid-area: prw; }
.resolve, .crewup { grid-area: res; }
.common { grid-area: common; }
.power { grid-area: power; }
.attack { grid-area: attack; }
.inv { grid-area: inv; }
.misc { grid-area: misc; }
.healing { grid-area: healing;}
.harm { grid-area: harm;}
.armour { grid-area: armour;}
.iskill { grid-area: iskill;}
.footer {
grid-area: footer;
background-color: gray;
}
.sheet-misc textarea {
.misc textarea {
width: 98%;
height: auto;
}
/*-- roll buttons? --*/
.sheet-main label > button[type=roll]::before {
.main label > button[type=roll]::before {
content: " " !important;
}
.sheet-main label > button[type=roll] {
.main label > button[type=roll] {
background-color: transparent;
border: none;
font-size: 1.1em;
@@ -183,7 +183,7 @@ label.sheet-lbl {
font-weight: bold;
}
.sheet-main label > button[type=roll]:hover {
.main label > button[type=roll]:hover {
color: #EC2127;
}
@@ -194,40 +194,40 @@ input[type=number]::-webkit-outer-spin-button {
margin: 0;
}
.sheet-main input[type=number] {
.main input[type=number] {
-moz-appearance: textfield;
}
.sheet-power h3 {
.power h3 {
width: 100%;
margin-bottom: 1.5em;
}
.sheet-xp-track {
.xp-track {
position:absolute;
right: 5px;
top: 5px;
}
.sheet-xp {
.xp {
display:flex;
flex-direction:row-reverse;
}
.sheet-xp.sheet-ib {
.xp.ib {
display:inline-flex;
vertical-align: middle;
}
.sheet-xp input {
.xp input[type=radio] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
margin-left: 5px;
border-radius: 20%;
width: 16px;
height: 16px;
border-color: #222;
border-radius: 20%;
width: 16px;
height: 16px;
border-color: #222;
}
.sheet-xp input:checked,
.sheet-xp input:checked ~ input[type=radio] {
.xp input:checked,
.xp input:checked ~ input[type=radio] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
@@ -238,27 +238,27 @@ input[type=number]::-webkit-outer-spin-button {
border-color: #222;
background-color: #222;
}
.sheet-stress input:checked,
.sheet-stress input:checked ~ input[type=radio] {
.stress input:checked,
.stress input:checked ~ input[type=radio] {
border-color: #222;
background-color: #C00;
}
.sheet-xp-clear {
.characterviewer label.xp-clear {
border: 1px solid black;
width: auto;
width: auto !important;
position: absolute;
right: 5px;
top: 2em;
padding: 0.25em 0.25em 0;
border-radius: 3px;
margin-bottom: none;
margin-bottom: 0;
font-size: 1em;
}
.sheet-xp-clear.sheet-ib { position:relative;right:0;top:0;display:inline-block;}
.sheet-xp-clear input, .sheet-btn-choice input, .sheet-ci-choice input {
.characterviewer label.xp-clear.ib { position:relative;right:0;top:0;display:inline-block;}
.xp-clear input, .btn-choice input, .ci-choice input {
display:none;
}
.sheet-btn-choice, .sheet-ci-choice {
.characterviewer label.btn-choice, .characterviewer label.ci-choice {
border: 1px solid black;
width: auto;
padding: 0.25em 0.25em 0;
@@ -267,129 +267,129 @@ input[type=number]::-webkit-outer-spin-button {
font-size: 1em;
display: inline-block;
}
.sheet-btn-choice:hover, .sheet-ci-choice:hover {
.btn-choice:hover, .ci-choice:hover {
border-color: #EC2127;
color: #EC2127;
}
.sheet-qup label,
.sheet-crewup label,
.sheet-hqup label {
.qup label,
.crewup label,
.hqup label {
font-weight: normal;
margin-bottom: 3px;
font-size: 1em;
}
.sheet-btn-choice input:checked + span {
.btn-choice input:checked + span {
color: green;
text-shadow: 2px 1px 2px rgba(150, 150, 150, 1);
}
.sheet-ci-choice input[data-attrname="ci_assign"]:checked + span {
.ci-choice input[data-attrname="ci_assign"]:checked + span {
color: green;
text-shadow: 2px 1px 2px rgba(150, 150, 150, 1);
}
.sheet-btn-choice input[name="attr_load_max"]:checked + span {
.btn-choice input[name="attr_load_max"]:checked + span {
color: green;
font-size:1.3em;
text-shadow: 2px 1px 2px rgba(150, 150, 150, 1);
}
.sheet-inv li {
.inv li {
list-style: none;
}
.sheet-inv li label {
.inv li label {
font-weight: normal;
font-size: 1em;
}
.sheet-power ul {
.power ul {
margin: 0;padding:0.5em;
}
.sheet-power li {
.power li {
list-style: none;
margin-bottom: 1em;
}
.sheet-power li label {
.power li label {
font-weight: bold;
font-size: 1em;
display: inline;
margin: 0;
padding: 0;
}
.sheet-armor h3 {
.armor h3 {
margin-bottom:0.5em;
}
.sheet-armor label {
.armor label {
font-weight: normal;
}
.sheet-healing {
.healing {
max-width:10em;
position: relative;
}
.sheet-harm table {
.harm table {
width:100%;margin:1em 0;text-align:center;border-collapse: collapse;
}
.sheet-harm table tr:first-child {
.harm table tr:first-child {
border-top: 1px solid black;
}
.sheet-harm table tr {
.harm table tr {
border-bottom: 1px solid black;height:3em;
}
.sheet-harm .sheet-num {
.harm .num {
width: 1.5em;background-color: #ddd;
}
.sheet-harm input {
.harm input {
width: 100%;
border: none;
}
.sheet-harm .sheet-lbl {
.harm .lbl {
width:4em;background-color: #ddd;
font-variant: small-caps;font-size:90%;
}
/* squad table */
.sheet-squad {
.squad {
margin: 1em 0em;
}
.sheet-squad td {
.squad td {
padding: 0.25em;
}
.sheet-squad th {
.squad th {
padding-left:0.25em;
}
.sheet-area-squad .repcontainer {
.area-squad .repcontainer {
display: grid;
grid-template-columns: 1fr 1fr;
}
.sheet-squadcard {
.squadcard {
background-color: #ddd;
border-radius: 0.5em;
padding: 1em 0.5em;
border: 1px dotted #222;
}
.sheet-squadcard h4 ~ label {
.squadcard h4 ~ label {
font-size: 1.2em;
margin-bottom: 0.5em;
}
.sheet-ltp .repcontainer {
.ltp .repcontainer {
display:grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-gap: 0.5em;
}
.sheet-clockcard {
.clockcard {
background-color: #ddd;
border-radius: 0.5em;
padding: 0.5em;
}
.sheet-clock-lbl {
.clock-lbl {
width: 100%;
}
/*-- CLOCKS --*/
.sheet-clock {
.clock {
font-size:150%;
width:4em;
height:4em;
@@ -401,7 +401,7 @@ input[type=number]::-webkit-outer-spin-button {
box-sizing: border-box;
margin-bottom: 0.5em;
}
.sheet-clock input[type=radio] {
.clock input[type=radio] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
@@ -416,64 +416,64 @@ input[type=number]::-webkit-outer-spin-button {
box-sizing: border-box;
font-size:inherit;
}
.sheet-clock input:checked,
.sheet-clock input:checked ~ input[type=radio] {
.clock input:checked,
.clock input:checked ~ input[type=radio] {
background-color: #222;
}
.sheet-clock .sheet-size[value="4"] ~ input[type=radio][value="8"]
.clock .size[value="4"] ~ input[type=radio][value="8"]
{ display:none; }
.sheet-clock .sheet-size[value="4"] ~ input[type=radio][value="7"]
.clock .size[value="4"] ~ input[type=radio][value="7"]
{ display:none; }
.sheet-clock .sheet-size[value="4"] ~ input[type=radio][value="6"]
.clock .size[value="4"] ~ input[type=radio][value="6"]
{ display:none; }
.sheet-clock .sheet-size[value="4"] ~ input[type=radio][value="5"]
.clock .size[value="4"] ~ input[type=radio][value="5"]
{ display:none; }
.sheet-clock .sheet-size[value="4"] ~input[value="4"] {
.clock .size[value="4"] ~input[value="4"] {
transform: rotate(-90deg);
}
.sheet-clock .sheet-size[value="4"] ~ input[value="3"] {
.clock .size[value="4"] ~ input[value="3"] {
transform: rotate(-180deg);
}
.sheet-clock .sheet-size[value="4"] ~ input[value="2"] {
.clock .size[value="4"] ~ input[value="2"] {
transform: rotate(-270deg);
}
.sheet-clock .sheet-size[value="4"] ~ input[value="1"] {
.clock .size[value="4"] ~ input[value="1"] {
transform: rotate(0deg);
}
.sheet-clock .sheet-size[value="6"] ~ input[type=radio][value="8"]
.clock .size[value="6"] ~ input[type=radio][value="8"]
{ display:none; }
.sheet-clock .sheet-size[value="6"] ~ input[type=radio][value="7"]
.clock .size[value="6"] ~ input[type=radio][value="7"]
{ display:none; }
.sheet-clock .sheet-size[value="6"] ~ input[type=radio][value="6"]
.clock .size[value="6"] ~ input[type=radio][value="6"]
{ transform: rotate(-60deg) skewY(-30deg); }
.sheet-clock .sheet-size[value="6"] ~ input[type=radio][value="5"]
.clock .size[value="6"] ~ input[type=radio][value="5"]
{ transform: rotate(-120deg) skewY(-30deg); }
.sheet-clock .sheet-size[value="6"] ~input[value="4"]
.clock .size[value="6"] ~input[value="4"]
{ transform: rotate(-180deg) skewY(-30deg); }
.sheet-clock .sheet-size[value="6"] ~ input[value="3"]
.clock .size[value="6"] ~ input[value="3"]
{ transform: rotate(-240deg) skewY(-30deg); }
.sheet-clock .sheet-size[value="6"] ~ input[value="2"]
.clock .size[value="6"] ~ input[value="2"]
{ transform: rotate(-300deg) skewY(-30deg); }
.sheet-clock .sheet-size[value="6"] ~ input[value="1"]
.clock .size[value="6"] ~ input[value="1"]
{transform: rotate(0deg) skewY(-30deg); }
.sheet-clock .sheet-size[value="8"] ~ input[type=radio][value="8"]
.clock .size[value="8"] ~ input[type=radio][value="8"]
{ transform: rotate(-45deg) skewY(-45deg); }
.sheet-clock .sheet-size[value="8"] ~ input[type=radio][value="7"]
.clock .size[value="8"] ~ input[type=radio][value="7"]
{ transform: rotate(-90deg) skewY(-45deg); }
.sheet-clock .sheet-size[value="8"] ~ input[type=radio][value="6"]
.clock .size[value="8"] ~ input[type=radio][value="6"]
{ transform: rotate(-135deg) skewY(-45deg); }
.sheet-clock .sheet-size[value="8"] ~ input[type=radio][value="5"]
.clock .size[value="8"] ~ input[type=radio][value="5"]
{ transform: rotate(-180deg) skewY(-45deg); }
.sheet-clock .sheet-size[value="8"] ~input[value="4"]
.clock .size[value="8"] ~input[value="4"]
{ transform: rotate(-225deg) skewY(-45deg); }
.sheet-clock .sheet-size[value="8"] ~ input[value="3"]
.clock .size[value="8"] ~ input[value="3"]
{ transform: rotate(-270deg) skewY(-45deg); }
.sheet-clock .sheet-size[value="8"] ~ input[value="2"]
.clock .size[value="8"] ~ input[value="2"]
{ transform: rotate(-315deg) skewY(-45deg); }
.sheet-clock .sheet-size[value="8"] ~ input[value="1"]
.clock .size[value="8"] ~ input[value="1"]
{transform: rotate(0deg) skewY(-45deg); }
/*-- roll template: action --*/
.sheet-rolltemplate-action {
@@ -493,7 +493,7 @@ input[type=number]::-webkit-outer-spin-button {
margin-bottom: 0.5em;
font-variant: small-caps;
}
.sheet-rolltemplate-action .sheet-center {
.sheet-rolltemplate-action .center {
text-align:center;
}
.sheet-rolltemplate-action .inlinerollresult {
@@ -534,7 +534,7 @@ input[type=number]::-webkit-outer-spin-button {
margin-bottom: 0.5em;
font-variant: small-caps;
}
.sheet-rolltemplate-resist .sheet-center {
.sheet-rolltemplate-resist .center {
text-align:center;
}
.sheet-rolltemplate-resist .inlinerollresult {
@@ -575,7 +575,7 @@ input[type=number]::-webkit-outer-spin-button {
margin-bottom: 0.5em;
font-variant: small-caps;
}
.sheet-rolltemplate-stability .sheet-center {
.sheet-rolltemplate-stability .center {
text-align:center;
}
.sheet-rolltemplate-stability .inlinerollresult {
+1 -1
View File
@@ -1,4 +1,4 @@
<input type="hidden" name="attr_version" value="1.10" />
<input type="hidden" name="attr_version" value="1.11" />
<input type="hidden" name="attr_sheet_type" value="choose" />
<input type="hidden" name="attr_stress_max" value="8" />
<div class="choose">
+2 -3
View File
@@ -4,6 +4,5 @@
"authors": "John C Barstow",
"roll20userid": "518601",
"preview": "preview.png",
"instructions": "This is a sheet for [Buried Secrets](https://spies.jbowtie.geek.nz/), a spy game Forged in the Dark",
"legacy": true
}
"instructions": "This is a sheet for [Buried Secrets](https://spies.jbowtie.geek.nz/), a spy game Forged in the Dark"
}
@@ -409,7 +409,7 @@
<input class="sheet-underlined sheet-center" type="number" name="attr_willpower" value="ceil(@{level}*.25)" disabled="true" data-formula="ceil(@{level}*.25)">
</div>
<div class="sheet-col-1-10 sheet-small-label sheet-center">
<input class="sheet-underlined sheet-center" type="number" name="attr_XPneeded" value="@{level}+3" disabled="true" data-formula="@{level}+3">
<input class="sheet-underlined sheet-center" type="number" name="attr_XPneeded" value="@{level}+3" disabled="true" data-formula="@{level}+4">
</div>
</div>
</div>
+121 -121
View File
@@ -1,148 +1,148 @@
{
"Primary": "Primary",
"MeritsFlaws": "Merits & Flaws",
"Powers": "Powers",
"OtherTraits": "Other Traits",
"Primary": "Principale",
"MeritsFlaws": "Atouts & Handicaps",
"Powers": "Pouvoirs",
"OtherTraits": "Autres Traits",
"Notes": "Notes",
"BondBoon": "Bond & Boon",
"BloodSorcery": "Blood Sorcery",
"BondBoon": "Lien & Bénédictions",
"BloodSorcery": "Sorcellerie du sang",
"Information": "Information",
"Dice": "Dice",
"Dice": "Dé",
"Combat": "Combat",
"maxblood-u": "Max Blood",
"maxblood-u": "Max Sang",
"maxtrait-u": "Max Trait",
"extrabruised-u": "Extra Bruised",
"movement-u": "Movement",
"dexspeed-u": "Dex Speed",
"dexboostspeed-u": "Dex Boost Speed",
"celerityspeed-u": "Celerity Speed",
"miscspeed-u": "Misc Speed",
"walkspeed-u": "Walk Speed",
"jogspeed-u": "Jog Speed",
"runspeed-u": "Run Speed",
"yardsmeters-u": "Yards/Meters",
"meleeweapons-u": "Melee Weapons",
"name2-u": "Name",
"extrabruised-u": "Contusion Extra",
"movement-u": "Mouvement",
"dexspeed-u": "Vitesse Dex",
"dexboostspeed-u": "Boost Vitesse Dex",
"celerityspeed-u": "Vitesse Célérité",
"miscspeed-u": "Vitesse Divers",
"walkspeed-u": "Vitesse Marche",
"jogspeed-u": "Vitesse Jogging",
"runspeed-u": "Vitesse Course",
"yardsmeters-u": "Yards/Mètres",
"meleeweapons-u": "Armes de mélée",
"name2-u": "Nom",
"type-u": "Type",
"minstr-u": "Min Str.",
"damage-u": "Damage",
"lethality-u": "Lethality",
"conceal-u": "Conceal",
"minstr-u": "Force Min",
"damage-u": "Dommage",
"lethality-u": "Létalité",
"conceal-u": "Cacher",
"bashing-u": "Bashing",
"lethal-u": "Lethal",
"aggravated-u": "Aggravated",
"rangedweapons-u": "Ranged Weapons",
"lethal-u": "Létal",
"aggravated-u": "Aggravée",
"rangedweapons-u": "Armes à distance",
"range-u": "Range",
"rate-u": "Rate",
"rate-u": "Taux",
"clip-u": "Clip",
"armorshields-u": "Armor & Shields",
"onq-u": "On?",
"class-u": "Class",
"rating-u": "Rating",
"penalty-u": "Penalty",
"aggravatedq-u": "Aggravated?",
"armor-u": "Armor",
"shield-u": "Shield",
"bodymod-u": "Body Mod.",
"other-u": "Other",
"no-u": "No",
"yes-u": "Yes",
"gear-u": "Gear",
"name-u": "Name:",
"player-u": "Player:",
"chronicle-u": "Chronicle:",
"nature-u": "Nature:",
"demeanor-u": "Demeanor:",
"armorshields-u": "Armures & Boucliers",
"onq-u": "Sur?",
"class-u": "Classe",
"rating-u": "Évaluation",
"penalty-u": "Pénalité",
"aggravatedq-u": "Aggravé ?",
"armor-u": "Armure",
"shield-u": "Bouclier",
"bodymod-u": "Corps Mod.",
"other-u": "Autres",
"no-u": "Non",
"yes-u": "Oui",
"gear-u": "Équipement",
"name-u": "Nom",
"player-u": "Joueur :",
"chronicle-u": "Chronique :",
"nature-u": "Nature :",
"demeanor-u": "Attitude:",
"concept-u": "Concept:",
"clan-u": "Clan:",
"generation-u": "Generation:",
"sire-u": "Sire:",
"attributes-u": "Attributes",
"physical-u": "Physical",
"social-u": "Social",
"mental-u": "Mental",
"strength-u": "Strength",
"dexterity-u": "Dexterity",
"stamina-u": "Stamina",
"charisma-u": "Charisma",
"clan-u": "Clan :",
"generation-u": "Génération :",
"sire-u": "Sire :",
"attributes-u": "Attributs",
"physical-u": "Physique",
"social-u": "Sociaux",
"mental-u": "Mentaux",
"strength-u": "Force",
"dexterity-u": "Dextérité",
"stamina-u": "Vigeur",
"charisma-u": "Charisme",
"manipulation-u": "Manipulation",
"appearance-u": "Appearance",
"appearance-u": "Apparence",
"intelligence-u": "Intelligence",
"wits-u": "Wits",
"wits-u": "Astuce",
"perception-u": "Perception",
"abilities-u": "Abilities",
"abilities-u": "Capacités",
"talents-u": "Talents",
"skills-u": "Skills",
"knowledges-u": "Knowledges",
"alertness-u": "Alertness",
"athletics-u": "Athletics",
"awareness-u": "Awareness",
"brawl-u": "Brawl",
"empathy-u": "Empathy",
"skills-u": "Compétences",
"knowledges-u": "Connaissances",
"alertness-u": "Vigilance",
"athletics-u": "Athlétisme",
"awareness-u": "Intuition",
"brawl-u": "Bagarre",
"empathy-u": "Empathie",
"expression-u": "Expression",
"intimidation-u": "Intimidation",
"leadership-u": "Leadership",
"leadership-u": "Commandement",
"subterfuge-u": "Subterfuge",
"streetwise-u": "Streetwise",
"legerdemain-u": "Legerdemain",
"animalken-u": "Animal Ken",
"crafts-u": "Craft",
"drive-u": "Drive",
"etiquette-u": "Etiquette",
"meleeDA-u": "MeleeDA",
"firearms-u": "Firearms",
"archery-u": "Archery",
"streetwise-u": "Connaisse de la rue",
"legerdemain-u": "Adresse",
"animalken-u": "Animaux",
"crafts-u": "Artisanat",
"drive-u": "Conduite",
"etiquette-u": "Étiquette",
"meleeDA-u": "Mêlée",
"firearms-u": "Armes à feu",
"archery-u": "Tir à l’arc",
"commerce-u": "Commerce",
"larceny-u": "Larceny",
"melee-u": "Melee",
"performance-u": "Performance",
"ride-u": "Ride",
"stealth-u": "Stealth",
"survival-u": "Survival",
"academics-u": "Academics",
"enigmas-u": "Enigmas",
"hearthWisdom-u": "Hearth Wisdom",
"computer-u": "Computer",
"larceny-u": "Larcin",
"melee-u": "Mêlée",
"performance-u": "Représentation",
"ride-u": "Équitation",
"stealth-u": "Furtivité",
"survival-u": "Survie",
"academics-u": "Érudition",
"enigmas-u": "Énigmes",
"hearthWisdom-u": "Sagesse populaire",
"computer-u": "Informatique",
"finance-u": "Finance",
"investigation-u": "Investigation",
"law-u": "Law",
"medicine-u": "Medicine",
"occult-u": "Occult",
"politics-u": "Politics",
"seneschal-u": "Seneschal",
"theology-u": "Theology",
"law-u": "Droit",
"medicine-u": "Médecine",
"occult-u": "Occultisme",
"politics-u": "Politique",
"seneschal-u": "Sénéchal",
"theology-u": "Théologie",
"science-u": "Science",
"technology-u": "Technology",
"advantages-u": "Advantages",
"technology-u": "Technologie",
"advantages-u": "Avantages",
"disciplines-u": "Disciplines",
"backgrounds-u": "Backgrounds",
"virtues-u": "Virtues",
"backgrounds-u": "Historiques",
"virtues-u": "Vertus",
"conscience-u": "Conscience",
"convinction-u": "Convinction",
"selfcontrol-u": "Self-Control",
"convinction-u": "Conviction",
"selfcontrol-u": "Maîtrise de soi",
"instinct-u": "Instinct",
"courage-u": "Courage",
"othertraits-u": "Other Traits",
"paths-u": "Paths",
"merits-u": "Merits",
"flaws-u": "Flaws",
"humanitypath-u": "Humanity/path",
"bearing-u": "Bearing:",
"willpower-u": "Willpower",
"bloodpool-u": "Blood Pool",
"pointsperturn-u": "Points Per Turn",
"dicepools-u": "Dice Pools",
"attributeability-u": "<b >Attribute &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ability</b >",
"health-u": "Health",
"bruised-u": "Bruised",
"hurt-u": "Hurt",
"injured-u": "Injured",
"wounded-u": "Wounded",
"mauled-u": "Mauled",
"crippled-u": "Crippled",
"incapacitated-u": "Incapacitated",
"weakness-u": "Weakness",
"experience-u": "Experience",
"othertraits-u": "Autres Traits",
"paths-u": "Voies",
"merits-u": "Atouts",
"flaws-u": "Handicaps",
"humanitypath-u": "Humanité/Voie",
"bearing-u": "Aura",
"willpower-u": "Volonté",
"bloodpool-u": "Réserve de sang",
"pointsperturn-u": "Points par Tour",
"dicepools-u": "Réserve de Dés",
"attributeability-u": "<b >Attribut &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Capacité</b >",
"health-u": "Santé",
"bruised-u": "Contusion",
"hurt-u": "Blessure légére",
"injured-u": "Blessure moyenne",
"wounded-u": "Blessure Grave",
"mauled-u": "Handicap",
"crippled-u": "Infirmité",
"incapacitated-u": "Incapacité",
"weakness-u": "Faiblesse",
"experience-u": "Expérience",
"notes-u": "Notes",
"pathsins-u": "Path Sins"
"pathsins-u": "Voie des péchés capitaux"
}
File diff suppressed because it is too large Load Diff
+18 -18
View File
@@ -4,7 +4,7 @@
"name-u": "名前",
"player-u": "プレイヤー名",
"occupation-u": "職業",
"archetype-u": "Archetype",
"archetype-u": "アーキタイプ",
"age-u": "年齢",
"sex-u": "性別",
"residence-u": "住所",
@@ -92,7 +92,7 @@
"elecrepair-u": "電気修理(10%)",
"elecrepair-r-txt": "電気修理ロール",
"elecrepair_ow-u": "電気修理(10%)",
"empire-u": "Empire(25%)",
"empire-u": "帝国(25%)",
"fasttalk-u": "言いくるめ(05%)",
"fasttalk-r-txt": "言いくるめロール",
"fighting(brawl)-u": "近接戦闘(格闘)(25%)",
@@ -100,7 +100,7 @@
"fightspec1": "Fighting Specialization 1",
"fightspec2": "Fighting Specialization 2",
"fightspec3": "Fighting Specialization 3",
"shield-u": "Shield(15%)",
"shield-u": "盾(15%)",
"fighting_other-u": "Fighting(Other)",
"firearms(hg)-u": "射撃(拳銃)(20%)",
"firearms_hg-r-txt": "射撃(拳銃)ロール",
@@ -114,7 +114,7 @@
"gambling-u": "Gambling(10%)",
"history-u": "歴史(05%)",
"history-r-txt": "歴史ロール",
"insight-da": "Insight(05%)",
"insight-da": "洞察(05%)",
"intimidate-u": "威圧(15%)",
"intimidate-r-txt": "威圧ロール",
"jump_da-u": "跳躍(25%)",
@@ -261,14 +261,14 @@
"damage&db-z": "ダメージ+DB",
"dam-z": "ダメージ",
"MOV-u": "移動率",
"skill1": "Skill 1",
"skill2": "Skill 2",
"skill3": "Skill 3",
"skill4": "Skill 4",
"skill5": "Skill 5",
"skill6": "Skill 6",
"skill7": "Skill 7",
"skill8": "Skill 8",
"skill1": "技能 1",
"skill2": "技能 2",
"skill3": "技能 3",
"skill4": "技能 4",
"skill5": "技能 5",
"skill6": "技能 6",
"skill7": "技能 7",
"skill8": "技能 8",
"gearandpossessions-u": "装備と所持品",
"cashandassets-u": "収入と財産",
"spendinglevel-u": "支出レベル",
@@ -294,18 +294,18 @@
"current-mental-condition": "現在精神状態",
"body-hit-location": "Body Hit Location",
"rolled": "ロール:",
"right-leg": "Right Leg",
"left-leg": "Left Leg",
"right-leg": "右足",
"left-leg": "左足",
"abdomen": "Abdomen",
"chest": "Chest",
"right-arm": "Right Arm",
"left-arm": "Left Arm",
"head": "Head",
"right-arm": "右腕",
"left-arm": "左腕",
"head": "頭",
"downtime-u": "Downtime",
"scenarioname-u": "シナリオ名",
"scenarioinfo-u": "Conclusion & Info",
"scenariorewards-u": "Rewards",
"spellname-u": "Spell Name",
"spellname-u": "呪文名",
"cost-u": "Cost",
"castime-u": "発動時間",
"description-u": "Description",
@@ -451,7 +451,7 @@
<table style="width:100%">
<tr>
<td style="width:20%"><input style="width:100%" type="text" value="Hinterbeine" disabled="true"/></td>
<td style="width:4%"><button type='roll' value='&{template:coc-attack} {{name=Hinterbeine}} {{success=[[@{fighting_brawl}]]}} {{hard=[[floor(@{fighting_brawl}/2)]]}} {{extreme=[[floor(@{fighting_brawl}/5)]]}} {{roll1=[[1d100]]}} {{roll2=[[1d100]]}} {{roll3=[[1d100]]}} {{damage=[[1d3+@{damage_bonus}]]}}' name='roll_unarmed_check'></button></td>
<td style="width:4%"><button type='roll' value='&{template:coc-attack} {{name=Hinterbeine}} {{success=[[@{fighting_brawl}]]}} {{hard=[[floor(@{fighting_brawl}/2)]]}} {{extreme=[[floor(@{fighting_brawl}/5)]]}} {{roll1=[[1d100]]}} {{roll2=[[1d100]]}} {{roll3=[[1d100]]}} {{damage=[[1d6+@{damage_bonus}]]}}' name='roll_unarmed_check'></button></td>
<td style="width:16%"><input style="width:100%" type="text" value="Nahkampf (Handgemenge)" disabled="true"/></td>
<td style="width:8%"><input style="width:100%;text-align:right;" type="text" value="1d6" disabled="true"/></td>
<td style="width:8%"><input style="width:100%;text-align:left;" type="text" value="+Sb" disabled="true"/></td>
@@ -464,7 +464,7 @@
<table style="width:100%">
<tr>
<td style="width:20%"><input style="width:100%" type="text" value="Biss" disabled="true"/></td>
<td style="width:4%"><button type='roll' value='&{template:coc-attack} {{name=Biss}} {{success=[[@{fighting_brawl}]]}} {{hard=[[floor(@{fighting_brawl}/2)]]}} {{extreme=[[floor(@{fighting_brawl}/5)]]}} {{roll1=[[1d100]]}} {{roll2=[[1d100]]}} {{roll3=[[1d100]]}} {{damage=[[1d3+@{damage_bonus}]]}}' name='roll_unarmed_check'></button></td>
<td style="width:4%"><button type='roll' value='&{template:coc-attack} {{name=Biss}} {{success=[[@{fighting_brawl}]]}} {{hard=[[floor(@{fighting_brawl}/2)]]}} {{extreme=[[floor(@{fighting_brawl}/5)]]}} {{roll1=[[1d100]]}} {{roll2=[[1d100]]}} {{roll3=[[1d100]]}} {{damage=[[1d4+@{damage_bonus}]]}}' name='roll_unarmed_check'></button></td>
<td style="width:16%"><input style="width:100%" type="text" value="Nahkampf (Handgemenge)" disabled="true"/></td>
<td style="width:8%"><input style="width:100%;text-align:right;" type="text" value="1d4" disabled="true"/></td>
<td style="width:8%"><input style="width:100%;text-align:left;" type="text" value="+Sb" disabled="true"/></td>
+8 -1
View File
@@ -10,10 +10,17 @@ Le jeu complet est disponible sur le site de l'éditeur [Black Book Editions](ht
# Version courante
3.8.1 [Screenshot](coc_v2.png)
3.9.0 [Screenshot](coc_v2.png)
# Notes de version
## v3.9.0 (2021-03-30)
- Ajout d'un champ titre pour chaque capacité (attributs @{voieN-tR} où N = no de voie et R = rang)
- Migration automatique d'une version antérieure : la première ligne de la capacité est considérée comme titre
- Prise en compte dans les autres fonctions (liaison d'un jet de capacité à une voie+rang, import de données de profil JSON)
- Correction d'un bug après suppression du seul modificateur d'attaque ou de DM de la liste (le modificateur n'est plus pris en compte dans les jets d'attaque)
## v3.8.1 (2021-03-01)
Suppression du code de remise en forme des textes de capacités par élimination des retours à la ligne
+12 -3
View File
@@ -133,8 +133,12 @@ table.sheet-tabsep {
padding: 2px;
}
textarea.sheet-boxability {
input[type='text'].sheet-boxability {
width: 92%;
border-style: none;
}
textarea.sheet-boxability {
overflow-x: hidden;
}
@@ -262,12 +266,17 @@ button[type='roll'].sheet-roll-d4::before {
button.sheet-flatbtn {
border: 0px;
background-color: transparent;
background-image: none;
font-size: 12px !important;
}
button[type='action'].sheet-iconbtn {
button[type='roll'].sheet-iconbtn::before {
content: '';
}
button.sheet-iconbtn {
font-family: pictos;
font-size: large;
font-size: large !important;
}
img.sheet-iconimg {
+407 -112
View File
@@ -1,8 +1,8 @@
<div class="sheet-mainBg">
<!-- FDP -->
<!-- INPUT HIDDEN Version FdP -->
<input type="hidden" name="attr_VERFDP" value="3.8.1" />
<input type="hidden" name="attr_VERSION" value="3.8.1" />
<input type="hidden" name="attr_VERFDP" value="3.9.0" />
<input type="hidden" name="attr_VERSION" value="3.9.0" />
<!-- INPUT HIDDEN Univers (COF, CG, COC) -->
<input type="hidden" name="attr_UNIVERS" value="COC" />
<input type="hidden" name="attr_coc_setting_bitume" value="0" />
@@ -82,13 +82,13 @@
<input type="checkbox" class="block-switch" style="display: none;" name="attr_coc_setting_bitume" value="1">
<div class="block-hidden">
<div style="vertical-align: middle; text-align: center;">
<img style="width:70%; height:90%" title="Version 3.8.1 - 01/03/2021"
<img style="width:70%; height:90%" title="Version 3.9.0 - 30/03/2021"
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ChroniquesOublieesContemporain/coc_logo.png" />
</div>
</div>
<div class="block-show">
<div style="vertical-align: middle; text-align: center;">
<img style="width:70%; height:90%" title="Version 3.8.1 - 01/03/2021"
<img style="width:70%; height:90%" title="Version 3.9.0 - 30/03/2021"
src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ChroniquesOublieesContemporain/coc_bitume.jpg" />
</div>
</div>
@@ -1138,8 +1138,8 @@
<tr>
<td class="sheet-textfatleft" colspan="5">
CAPACITÉS DU PERSONNAGE
<input type="checkbox" class="sheet-setup-abilities" name="attr_setup_abilities"
title="Editer les capacités">
<span class="sheet-setup-abilities sheet-textbase">Edition&nbsp;<input type="checkbox" name="attr_setup_abilities"
title="Editer les capacités"></span>
</td>
</tr>
<tr>
@@ -1167,75 +1167,150 @@
<td class="sheet-boxtitresmall">1</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v1r1" value="1" />
<span name="attr_voie1-1" class="sheet-boxability" title="@{voie1-1}"></span>
<span name="attr_voie1-t1" class="sheet-boxability" title="@{voie1-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v1r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie1-t1} }} {{desc=**@{voie1nom}, rang [[1]]** }} {{text=@{voie1-1} }}">w</button>
</span>
<br><span name="attr_voie1-1" class="sheet-boxability" title="@{voie1-1}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v2r1" value="1" />
<span name="attr_voie2-1" class="sheet-boxability" title="@{voie2-1}"></span>
<span name="attr_voie2-t1" class="sheet-boxability" title="@{voie2-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v2r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie2-t1} }} {{desc=**@{voie2nom}, rang [[1]]** }} {{text=@{voie2-1} }}">w</button>
</span>
<br><span name="attr_voie2-1" class="sheet-boxability" title="@{voie2-1}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v3r1" value="1" />
<span name="attr_voie3-1" class="sheet-boxability" title="@{voie3-1}"></span>
<span name="attr_voie3-t1" class="sheet-boxability" title="@{voie3-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v3r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie3-t1} }} {{desc=**@{voie3nom}, rang [[1]]** }} {{text=@{voie3-1} }}">w</button>
</span>
<br><span name="attr_voie3-1" class="sheet-boxability" title="@{voie3-1}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">2</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v1r2" value="1" />
<span name="attr_voie1-2" class="sheet-boxability" title="@{voie1-2}"></span>
<span name="attr_voie1-t2" class="sheet-boxability" title="@{voie1-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v1r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie1-t2} }} {{desc=**@{voie1nom}, rang [[2]]** }} {{text=@{voie1-2} }}">w</button>
</span>
<br><span name="attr_voie1-2" class="sheet-boxability" title="@{voie1-2}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v2r2" value="1" />
<span name="attr_voie2-2" class="sheet-boxability" title="@{voie2-2}"></span>
<span name="attr_voie2-t2" class="sheet-boxability" title="@{voie2-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v2r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie2-t2} }} {{desc=**@{voie2nom}, rang [[2]]** }} {{text=@{voie2-2} }}">w</button>
</span>
<br><span name="attr_voie2-2" class="sheet-boxability" title="@{voie2-2}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v3r2" value="1" />
<span name="attr_voie3-2" class="sheet-boxability" title="@{voie3-2}"></span>
<span name="attr_voie3-t2" class="sheet-boxability" title="@{voie3-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v3r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie3-t2} }} {{desc=**@{voie3nom}, rang [[2]]** }} {{text=@{voie3-2} }}">w</button>
</span>
<br><span name="attr_voie3-2" class="sheet-boxability" title="@{voie3-2}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">3</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v1r3" value="1" />
<span name="attr_voie1-3" class="sheet-boxability" title="@{voie1-3}"></span>
<span name="attr_voie1-t3" class="sheet-boxability" title="@{voie1-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v1r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie1-t3} }} {{desc=**@{voie1nom}, rang [[3]]** }} {{text=@{voie1-3} }}">w</button>
</span>
<br><span name="attr_voie1-3" class="sheet-boxability" title="@{voie1-3}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v2r3" value="1" />
<span name="attr_voie2-3" class="sheet-boxability" title="@{voie2-3}"></span>
<span name="attr_voie2-t3" class="sheet-boxability" title="@{voie2-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v2r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie2-t3} }} {{desc=**@{voie2nom}, rang [[3]]** }} {{text=@{voie2-3} }}">w</button>
</span>
<br><span name="attr_voie2-3" class="sheet-boxability" title="@{voie2-3}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v3r3" value="1" />
<span name="attr_voie3-3" class="sheet-boxability" title="@{voie3-3}"></span>
<span name="attr_voie3-t3" class="sheet-boxability" title="@{voie3-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v3r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie3-t3} }} {{desc=**@{voie3nom}, rang [[3]]** }} {{text=@{voie3-3} }}">w</button>
</span>
<br><span name="attr_voie3-3" class="sheet-boxability" title="@{voie3-3}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">4</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v1r4" value="1" />
<span name="attr_voie1-4" class="sheet-boxability" title="@{voie1-4}"></span>
<span name="attr_voie1-t4" class="sheet-boxability" title="@{voie1-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v1r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie1-t4} }} {{desc=**@{voie1nom}, rang [[4]]** }} {{text=@{voie1-4} }}">w</button>
</span>
<br><span name="attr_voie1-4" class="sheet-boxability" title="@{voie1-4}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v2r4" value="1" />
<span name="attr_voie2-4" class="sheet-boxability" title="@{voie2-4}"></span>
<span name="attr_voie2-t4" class="sheet-boxability" title="@{voie2-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v2r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie2-t4} }} {{desc=**@{voie2nom}, rang [[4]]** }} {{text=@{voie2-4} }}">w</button>
</span>
<br><span name="attr_voie2-4" class="sheet-boxability" title="@{voie2-4}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v3r4" value="1" />
<span name="attr_voie3-4" class="sheet-boxability" title="@{voie3-4}"></span>
<span name="attr_voie3-t4" class="sheet-boxability" title="@{voie3-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v3r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie3-t4} }} {{desc=**@{voie3nom}, rang [[4]]** }} {{text=@{voie3-4} }}">w</button>
</span>
<br><span name="attr_voie3-4" class="sheet-boxability" title="@{voie3-4}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">5</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v1r5" value="1" />
<span name="attr_voie1-5" class="sheet-boxability" title="@{voie1-5}"></span>
<span name="attr_voie1-t5" class="sheet-boxability" title="@{voie1-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v1r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie1-t5} }} {{desc=**@{voie1nom}, rang [[5]]** }} {{text=@{voie1-5} }}">w</button>
</span>
<br><span name="attr_voie1-5" class="sheet-boxability" title="@{voie1-5}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v2r5" value="1" />
<span name="attr_voie2-5" class="sheet-boxability" title="@{voie2-5}"></span>
<span name="attr_voie2-t5" class="sheet-boxability" title="@{voie2-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v2r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie2-t5} }} {{desc=**@{voie2nom}, rang [[5]]** }} {{text=@{voie2-5} }}">w</button>
</span>
<br><span name="attr_voie2-5" class="sheet-boxability" title="@{voie2-5}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v3r5" value="1" />
<span name="attr_voie3-5" class="sheet-boxability" title="@{voie3-5}"></span>
<span name="attr_voie3-t5" class="sheet-boxability" title="@{voie3-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v3r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie3-t5} }} {{desc=**@{voie3nom}, rang [[5]]** }} {{text=@{voie3-5} }}">w</button>
</span>
<br><span name="attr_voie3-5" class="sheet-boxability" title="@{voie3-5}"></span>
</td>
</tr>
</table>
@@ -1265,75 +1340,150 @@
<td class="sheet-boxtitresmall">1</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v4r1" value="1" />
<span name="attr_voie4-1" class="sheet-boxability" title="@{voie4-1}"></span>
<span name="attr_voie4-t1" class="sheet-boxability" title="@{voie4-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v4r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie4-t1} }} {{desc=**@{voie4nom}, rang [[1]]** }} {{text=@{voie4-1} }}">w</button>
</span>
<br><span name="attr_voie4-1" class="sheet-boxability" title="@{voie4-1}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v5r1" value="1" />
<span name="attr_voie5-1" class="sheet-boxability" title="@{voie5-1}"></span>
<span name="attr_voie5-t1" class="sheet-boxability" title="@{voie5-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v5r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie5-t1} }} {{desc=**@{voie5nom}, rang [[1]]** }} {{text=@{voie5-1} }}">w</button>
</span>
<br><span name="attr_voie5-1" class="sheet-boxability" title="@{voie5-1}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v6r1" value="1" />
<span name="attr_voie6-1" class="sheet-boxability" title="@{voie6-1}"></span>
<span name="attr_voie6-t1" class="sheet-boxability" title="@{voie6-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v6r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie6-t1} }} {{desc=**@{voie6nom}, rang [[1]]** }} {{text=@{voie6-1} }}">w</button>
</span>
<br><span name="attr_voie6-1" class="sheet-boxability" title="@{voie6-1}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">2</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v4r2" value="1" />
<span name="attr_voie4-2" class="sheet-boxability" title="@{voie4-2}"></span>
<span name="attr_voie4-t2" class="sheet-boxability" title="@{voie4-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v4r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie4-t2} }} {{desc=**@{voie4nom}, rang [[2]]** }} {{text=@{voie4-2} }}">w</button>
</span>
<br><span name="attr_voie4-2" class="sheet-boxability" title="@{voie4-2}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v5r2" value="1" />
<span name="attr_voie5-2" class="sheet-boxability" title="@{voie5-2}"></span>
<span name="attr_voie5-t2" class="sheet-boxability" title="@{voie5-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v5r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie5-t2} }} {{desc=**@{voie5nom}, rang [[2]]** }} {{text=@{voie5-2} }}">w</button>
</span>
<br><span name="attr_voie5-2" class="sheet-boxability" title="@{voie5-2}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v6r2" value="1" />
<span name="attr_voie6-2" class="sheet-boxability" title="@{voie6-2}"></span>
<span name="attr_voie6-t2" class="sheet-boxability" title="@{voie6-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v6r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie6-t2} }} {{desc=**@{voie6nom}, rang [[2]]** }} {{text=@{voie6-2} }}">w</button>
</span>
<br><span name="attr_voie6-2" class="sheet-boxability" title="@{voie6-2}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">3</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v4r3" value="1" />
<span name="attr_voie4-3" class="sheet-boxability" title="@{voie4-3}"></span>
<span name="attr_voie4-t3" class="sheet-boxability" title="@{voie4-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v4r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie4-t3} }} {{desc=**@{voie4nom}, rang [[3]]** }} {{text=@{voie4-3} }}">w</button>
</span>
<br><span name="attr_voie4-3" class="sheet-boxability" title="@{voie4-3}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v5r3" value="1" />
<span name="attr_voie5-3" class="sheet-boxability" title="@{voie5-3}"></span>
<span name="attr_voie5-t3" class="sheet-boxability" title="@{voie5-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v5r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie5-t3} }} {{desc=**@{voie5nom}, rang [[3]]** }} {{text=@{voie5-3} }}">w</button>
</span>
<br><span name="attr_voie5-3" class="sheet-boxability" title="@{voie5-3}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v6r3" value="1" />
<span name="attr_voie6-3" class="sheet-boxability" title="@{voie6-3}"></span>
<span name="attr_voie6-t3" class="sheet-boxability" title="@{voie6-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v6r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie6-t3} }} {{desc=**@{voie6nom}, rang [[3]]** }} {{text=@{voie6-3} }}">w</button>
</span>
<br><span name="attr_voie6-3" class="sheet-boxability" title="@{voie6-3}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">4</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v4r4" value="1" />
<span name="attr_voie4-4" class="sheet-boxability" title="@{voie4-4}"></span>
<span name="attr_voie4-t4" class="sheet-boxability" title="@{voie4-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v4r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie4-t4} }} {{desc=**@{voie4nom}, rang [[4]]** }} {{text=@{voie4-4} }}">w</button>
</span>
<br><span name="attr_voie4-4" class="sheet-boxability" title="@{voie4-4}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v5r4" value="1" />
<span name="attr_voie5-4" class="sheet-boxability" title="@{voie5-4}"></span>
<span name="attr_voie5-t4" class="sheet-boxability" title="@{voie5-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v5r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie5-t4} }} {{desc=**@{voie5nom}, rang [[4]]** }} {{text=@{voie5-4} }}">w</button>
</span>
<br><span name="attr_voie5-4" class="sheet-boxability" title="@{voie5-4}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v6r4" value="1" />
<span name="attr_voie6-4" class="sheet-boxability" title="@{voie6-4}"></span>
<span name="attr_voie6-t4" class="sheet-boxability" title="@{voie6-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v6r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie6-t4} }} {{desc=**@{voie6nom}, rang [[4]]** }} {{text=@{voie6-4} }}">w</button>
</span>
<br><span name="attr_voie6-4" class="sheet-boxability" title="@{voie6-4}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">5</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v4r5" value="1" />
<span name="attr_voie4-5" class="sheet-boxability" title="@{voie4-5}"></span>
<span name="attr_voie4-t5" class="sheet-boxability" title="@{voie4-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v4r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie4-t5} }} {{desc=**@{voie4nom}, rang [[5]]** }} {{text=@{voie4-5} }}">w</button>
</span>
<br><span name="attr_voie4-5" class="sheet-boxability" title="@{voie4-5}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v5r5" value="1" />
<span name="attr_voie5-5" class="sheet-boxability" title="@{voie5-5}"></span>
<span name="attr_voie5-t5" class="sheet-boxability" title="@{voie5-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v5r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie5-t5} }} {{desc=**@{voie5nom}, rang [[5]]** }} {{text=@{voie5-5} }}">w</button>
</span>
<br><span name="attr_voie5-5" class="sheet-boxability" title="@{voie5-5}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v6r5" value="1" />
<span name="attr_voie6-5" class="sheet-boxability" title="@{voie6-5}"></span>
<span name="attr_voie6-t5" class="sheet-boxability" title="@{voie6-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v6r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie6-t5} }} {{desc=**@{voie6nom}, rang [[5]]** }} {{text=@{voie6-5} }}">w</button>
</span>
<br><span name="attr_voie6-5" class="sheet-boxability" title="@{voie6-5}"></span>
</td>
</tr>
</table>
@@ -1367,75 +1517,150 @@
<td class="sheet-boxtitresmall">1</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v7r1" value="1" />
<span name="attr_voie7-1" class="sheet-boxability" title="@{voie7-1}"></span>
<span name="attr_voie7-t1" class="sheet-boxability" title="@{voie7-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v7r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie7-t1} }} {{desc=**@{voie7nom}, rang [[1]]** }} {{text=@{voie7-1} }}">w</button>
</span>
<br><span name="attr_voie7-1" class="sheet-boxability" title="@{voie7-1}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v8r1" value="1" />
<span name="attr_voie8-1" class="sheet-boxability" title="@{voie8-1"></span>
<span name="attr_voie8-t1" class="sheet-boxability" title="@{voie8-t1"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v8r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie8-t1} }} {{desc=**@{voie8nom}, rang [[1]]** }} {{text=@{voie8-1} }}">w</button>
</span>
<br><span name="attr_voie8-1" class="sheet-boxability" title="@{voie8-1"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v9r1" value="1" />
<span name="attr_voie9-1" class="sheet-boxability" title="@{voie9-1}"></span>
<span name="attr_voie9-t1" class="sheet-boxability" title="@{voie9-t1}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v9r1" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie9-t1} }} {{desc=**@{voie9nom}, rang [[1]]** }} {{text=@{voie9-1} }}">w</button>
</span>
<br><span name="attr_voie9-1" class="sheet-boxability" title="@{voie9-1}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">2</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v7r2" value="1" />
<span name="attr_voie7-2" class="sheet-boxability" title="@{voie7-2}"></span>
<span name="attr_voie7-t2" class="sheet-boxability" title="@{voie7-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v7r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie7-t2} }} {{desc=**@{voie7nom}, rang [[2]]** }} {{text=@{voie7-2} }}">w</button>
</span>
<br><span name="attr_voie7-2" class="sheet-boxability" title="@{voie7-2}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v8r2" value="1" />
<span name="attr_voie8-2" class="sheet-boxability" title="@{voie8-2}"></span>
<span name="attr_voie8-t2" class="sheet-boxability" title="@{voie8-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v8r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie8-t2} }} {{desc=**@{voie8nom}, rang [[2]]** }} {{text=@{voie8-2} }}">w</button>
</span>
<br><span name="attr_voie8-2" class="sheet-boxability" title="@{voie8-2}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v9r2" value="1" />
<span name="attr_voie9-2" class="sheet-boxability" title="@{voie9-2}"></span>
<span name="attr_voie9-t2" class="sheet-boxability" title="@{voie9-t2}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v9r2" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie9-t2} }} {{desc=**@{voie9nom}, rang [[2]]** }} {{text=@{voie9-2} }}">w</button>
</span>
<br><span name="attr_voie9-2" class="sheet-boxability" title="@{voie9-2}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">3</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v7r3" value="1" />
<span name="attr_voie7-3" class="sheet-boxability" title="@{voie7-3}"></span>
<span name="attr_voie7-t3" class="sheet-boxability" title="@{voie7-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v7r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie7-t3} }} {{desc=**@{voie7nom}, rang [[3]]** }} {{text=@{voie7-3} }}">w</button>
</span>
<br><span name="attr_voie7-3" class="sheet-boxability" title="@{voie7-3}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v8r3" value="1" />
<span name="attr_voie8-3" class="sheet-boxability" title="@{voie8-3}"></span>
<span name="attr_voie8-t3" class="sheet-boxability" title="@{voie8-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v8r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie8-t3} }} {{desc=**@{voie8nom}, rang [[3]]** }} {{text=@{voie8-3} }}">w</button>
</span>
<br><span name="attr_voie8-3" class="sheet-boxability" title="@{voie8-3}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v9r3" value="1" />
<span name="attr_voie9-3" class="sheet-boxability" title="@{voie9-3}"></span>
<span name="attr_voie9-t3" class="sheet-boxability" title="@{voie9-t3}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v9r3" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie9-t3} }} {{desc=**@{voie9nom}, rang [[3]]** }} {{text=@{voie9-3} }}">w</button>
</span>
<br><span name="attr_voie9-3" class="sheet-boxability" title="@{voie9-3}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">4</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v7r4" value="1" />
<span name="attr_voie7-4" class="sheet-boxability" title="@{voie7-4}"></span>
<span name="attr_voie7-t4" class="sheet-boxability" title="@{voie7-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v7r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie7-t4} }} {{desc=**@{voie7nom}, rang [[4]]** }} {{text=@{voie7-4} }}">w</button>
</span>
<br><span name="attr_voie7-4" class="sheet-boxability" title="@{voie7-4}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v8r4" value="1" />
<span name="attr_voie8-4" class="sheet-boxability" title="@{voie8-4}"></span>
<span name="attr_voie8-t4" class="sheet-boxability" title="@{voie8-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v8r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie8-t4} }} {{desc=**@{voie8nom}, rang [[4]]** }} {{text=@{voie8-4} }}">w</button>
</span>
<br><span name="attr_voie8-4" class="sheet-boxability" title="@{voie8-4}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v9r4" value="1" />
<span name="attr_voie9-4" class="sheet-boxability" title="@{voie9-4}"></span>
<span name="attr_voie9-t4" class="sheet-boxability" title="@{voie9-t4}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v9r4" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie9-t4} }} {{desc=**@{voie9nom}, rang [[4]]** }} {{text=@{voie9-4} }}">w</button>
</span>
<br><span name="attr_voie9-4" class="sheet-boxability" title="@{voie9-4}"></span>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">5</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v7r5" value="1" />
<span name="attr_voie7-5" class="sheet-boxability" title="@{voie7-5}"></span>
<span name="attr_voie7-t5" class="sheet-boxability" title="@{voie7-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v7r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie7-t5} }} {{desc=**@{voie7nom}, rang [[5]]** }} {{text=@{voie7-5} }}">w</button>
</span>
<br><span name="attr_voie7-5" class="sheet-boxability" title="@{voie7-5}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v8r5" value="1" />
<span name="attr_voie8-5" class="sheet-boxability" title="@{voie8-5}"></span>
<span name="attr_voie8-t5" class="sheet-boxability" title="@{voie8-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v8r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie8-t5} }} {{desc=**@{voie8nom}, rang [[5]]** }} {{text=@{voie8-5} }}">w</button>
</span>
<br><span name="attr_voie8-5" class="sheet-boxability" title="@{voie8-5}"></span>
</td>
<td class="sheet-boxvoie sheet-boxtext">
<input type="checkbox" name="attr_v9r5" value="1" />
<span name="attr_voie9-5" class="sheet-boxability" title="@{voie9-5}"></span>
<span name="attr_voie9-t5" class="sheet-boxability" title="@{voie9-t5}"></span>
<span style="float: right;">
<button type="roll" class="sheet-flatbtn sheet-iconbtn" name="roll_v9r5" title=""
value="&{template:co1} {{perso=@{character_name} }} {{subtags=Capacité }} {{name=@{voie9-t5} }} {{desc=**@{voie9nom}, rang [[5]]** }} {{text=@{voie9-5} }}">w</button>
</span>
<br><span name="attr_voie9-5" class="sheet-boxability" title="@{voie9-5}"></span>
</td>
</tr>
</table>
@@ -1447,8 +1672,8 @@
<tr>
<td class="sheet-textfatleft" colspan="5">
CAPACITÉS DU PERSONNAGE
<input type="checkbox" class="sheet-setup-abilities" name="attr_setup_abilities"
title="Editer les capacités">
<span class="sheet-setup-abilities">Affichage&nbsp;<input type="checkbox" name="attr_setup_abilities"
title="Editer les capacités"></span>
</td>
</tr>
<tr>
@@ -1476,75 +1701,90 @@
<td class="sheet-boxtitresmall">1</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v1r1" value="1" />
<textarea name="attr_voie1-1" class="sheet-boxability" title="@{voie1-1}"></textarea>
<input type="text" name="attr_voie1-t1" class="sheet-boxability" title="@{voie1-t1}" />
<br><textarea name="attr_voie1-1" class="sheet-boxability" title="@{voie1-1}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v2r1" value="1" />
<textarea name="attr_voie2-1" class="sheet-boxability" title="@{voie2-1}"></textarea>
<input type="text" name="attr_voie2-t1" class="sheet-boxability" title="@{voie2-t1}" />
<br><textarea name="attr_voie2-1" class="sheet-boxability" title="@{voie2-1}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v3r1" value="1" />
<textarea name="attr_voie3-1" class="sheet-boxability" title="@{voie3-1}"></textarea>
<input type="text" name="attr_voie3-t1" class="sheet-boxability" title="@{voie3-t1}" />
<br><textarea name="attr_voie3-1" class="sheet-boxability" title="@{voie3-1}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">2</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v1r2" value="1" />
<textarea name="attr_voie1-2" class="sheet-boxability" title="@{voie1-2}"></textarea>
<input type="text" name="attr_voie1-t2" class="sheet-boxability" title="@{voie1-t2}" />
<br><textarea name="attr_voie1-2" class="sheet-boxability" title="@{voie1-2}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v2r2" value="1" />
<textarea name="attr_voie2-2" class="sheet-boxability" title="@{voie2-2}"></textarea>
<input type="text" name="attr_voie2-t2" class="sheet-boxability" title="@{voie2-t2}" />
<br><textarea name="attr_voie2-2" class="sheet-boxability" title="@{voie2-2}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v3r2" value="1" />
<textarea name="attr_voie3-2" class="sheet-boxability" title="@{voie3-2}"></textarea>
<input type="text" name="attr_voie3-t2" class="sheet-boxability" title="@{voie3-t2}" />
<br><textarea name="attr_voie3-2" class="sheet-boxability" title="@{voie3-2}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">3</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v1r3" value="1" />
<textarea name="attr_voie1-3" class="sheet-boxability" title="@{voie1-3}"></textarea>
<input type="text" name="attr_voie1-t3" class="sheet-boxability" title="@{voie1-t3}" />
<br><textarea name="attr_voie1-3" class="sheet-boxability" title="@{voie1-3}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v2r3" value="1" />
<textarea name="attr_voie2-3" class="sheet-boxability" title="@{voie2-3}"></textarea>
<input type="text" name="attr_voie2-t3" class="sheet-boxability" title="@{voie2-t3}" />
<br><textarea name="attr_voie2-3" class="sheet-boxability" title="@{voie2-3}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v3r3" value="1" />
<textarea name="attr_voie3-3" class="sheet-boxability" title="@{voie3-3}"></textarea>
<input type="text" name="attr_voie3-t3" class="sheet-boxability" title="@{voie3-t3}" />
<br><textarea name="attr_voie3-3" class="sheet-boxability" title="@{voie3-3}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">4</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v1r4" value="1" />
<textarea name="attr_voie1-4" class="sheet-boxability" title="@{voie1-4}"></textarea>
<input type="text" name="attr_voie1-t4" class="sheet-boxability" title="@{voie1-t4}" />
<br><textarea name="attr_voie1-4" class="sheet-boxability" title="@{voie1-4}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v2r4" value="1" />
<textarea name="attr_voie2-4" class="sheet-boxability" title="@{voie2-4}"></textarea>
<input type="text" name="attr_voie2-tt" class="sheet-boxability" title="@{voie2-t4}" />
<br><textarea name="attr_voie2-4" class="sheet-boxability" title="@{voie2-4}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v3r4" value="1" />
<textarea name="attr_voie3-4" class="sheet-boxability" title="@{voie3-4}"></textarea>
<input type="text" name="attr_voie3-t4" class="sheet-boxability" title="@{voie3-t4}" />
<br><textarea name="attr_voie3-4" class="sheet-boxability" title="@{voie3-4}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">5</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v1r5" value="1" />
<textarea name="attr_voie1-5" class="sheet-boxability" title="@{voie1-5}"></textarea>
<input type="text" name="attr_voie1-t5" class="sheet-boxability" title="@{voie1-t5}" />
<br><textarea name="attr_voie1-5" class="sheet-boxability" title="@{voie1-5}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v2r5" value="1" />
<textarea name="attr_voie2-5" class="sheet-boxability" title="@{voie2-5}"></textarea>
<input type="text" name="attr_voie2-t5" class="sheet-boxability" title="@{voie2-t5}" />
<br><textarea name="attr_voie2-5" class="sheet-boxability" title="@{voie2-5}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v3r5" value="1" />
<textarea name="attr_voie3-5" class="sheet-boxability" title="@{voie3-5}"></textarea>
<input type="text" name="attr_voie3-t5" class="sheet-boxability" title="@{voie3-t5}" />
<br><textarea name="attr_voie3-5" class="sheet-boxability" title="@{voie3-5}"></textarea>
</td>
</tr>
</table>
@@ -1574,75 +1814,90 @@
<td class="sheet-boxtitresmall">1</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v4r1" value="1" />
<textarea name="attr_voie4-1" class="sheet-boxability" title="@{voie4-1}"></textarea>
<input type="text" name="attr_voie4-t1" class="sheet-boxability" title="@{voie4-t1}" />
<br><textarea name="attr_voie4-1" class="sheet-boxability" title="@{voie4-1}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v5r1" value="1" />
<textarea name="attr_voie5-1" class="sheet-boxability" title="@{voie5-1}"></textarea>
<input type="text" name="attr_voie5-t1" class="sheet-boxability" title="@{voie5-t1}" />
<br><textarea name="attr_voie5-1" class="sheet-boxability" title="@{voie5-1}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v6r1" value="1" />
<textarea name="attr_voie6-1" class="sheet-boxability" title="@{voie6-1}"></textarea>
<input type="text" name="attr_voie6-t1" class="sheet-boxability" title="@{voie6-t1}" />
<br><textarea name="attr_voie6-1" class="sheet-boxability" title="@{voie6-1}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">2</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v4r2" value="1" />
<textarea name="attr_voie4-2" class="sheet-boxability" title="@{voie4-2}"></textarea>
<input type="text" name="attr_voie4-t2" class="sheet-boxability" title="@{voi41-t2}" />
<br><textarea name="attr_voie4-2" class="sheet-boxability" title="@{voie4-2}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v5r2" value="1" />
<textarea name="attr_voie5-2" class="sheet-boxability" title="@{voie5-2}"></textarea>
<input type="text" name="attr_voie5-t2" class="sheet-boxability" title="@{voie5-t2}" />
<br><textarea name="attr_voie5-2" class="sheet-boxability" title="@{voie5-2}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v6r2" value="1" />
<textarea name="attr_voie6-2" class="sheet-boxability" title="@{voie6-2}"></textarea>
<input type="text" name="attr_voie6-t2" class="sheet-boxability" title="@{voie6-t2}" />
<br><textarea name="attr_voie6-2" class="sheet-boxability" title="@{voie6-2}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">3</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v4r3" value="1" />
<textarea name="attr_voie4-3" class="sheet-boxability" title="@{voie4-3}"></textarea>
<input type="text" name="attr_voie4-t3" class="sheet-boxability" title="@{voie4-t3}" />
<br><textarea name="attr_voie4-3" class="sheet-boxability" title="@{voie4-3}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v5r3" value="1" />
<textarea name="attr_voie5-3" class="sheet-boxability" title="@{voie5-3}"></textarea>
<input type="text" name="attr_voie5-t3" class="sheet-boxability" title="@{voie5-t3}" />
<br><textarea name="attr_voie5-3" class="sheet-boxability" title="@{voie5-3}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v6r3" value="1" />
<textarea name="attr_voie6-3" class="sheet-boxability" title="@{voie6-3}"></textarea>
<input type="text" name="attr_voie6-t3" class="sheet-boxability" title="@{voie6-t3}" />
<br><textarea name="attr_voie6-3" class="sheet-boxability" title="@{voie6-3}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">4</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v4r4" value="1" />
<textarea name="attr_voie4-4" class="sheet-boxability" title="@{voie4-4}"></textarea>
<input type="text" name="attr_voie4-t4" class="sheet-boxability" title="@{voie4-t4}" />
<br><textarea name="attr_voie4-4" class="sheet-boxability" title="@{voie4-4}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v5r4" value="1" />
<textarea name="attr_voie5-4" class="sheet-boxability" title="@{voie5-4}"></textarea>
<input type="text" name="attr_voie5-t4" class="sheet-boxability" title="@{voie5-t4}" />
<br><textarea name="attr_voie5-4" class="sheet-boxability" title="@{voie5-4}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v6r4" value="1" />
<textarea name="attr_voie6-4" class="sheet-boxability" title="@{voie6-4}"></textarea>
<input type="text" name="attr_voie6-t4" class="sheet-boxability" title="@{voie6-t4}" />
<br><textarea name="attr_voie6-4" class="sheet-boxability" title="@{voie6-4}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">5</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v4r5" value="1" />
<textarea name="attr_voie4-5" class="sheet-boxability" title="@{voie4-5}"></textarea>
<input type="text" name="attr_voie4-t5" class="sheet-boxability" title="@{voie4-t5}" />
<br><textarea name="attr_voie4-5" class="sheet-boxability" title="@{voie4-5}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v5r5" value="1" />
<textarea name="attr_voie5-5" class="sheet-boxability" title="@{voie5-5}"></textarea>
<input type="text" name="attr_voie5-t5" class="sheet-boxability" title="@{voie5-t5}" />
<br><textarea name="attr_voie5-5" class="sheet-boxability" title="@{voie5-5}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v6r5" value="1" />
<textarea name="attr_voie6-5" class="sheet-boxability" title="@{voie6-5}"></textarea>
<input type="text" name="attr_voie6-t5" class="sheet-boxability" title="@{voie6-t5}" />
<br><textarea name="attr_voie6-5" class="sheet-boxability" title="@{voie6-5}"></textarea>
</td>
</tr>
</table>
@@ -1676,75 +1931,90 @@
<td class="sheet-boxtitresmall">1</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v7r1" value="1" />
<textarea name="attr_voie7-1" class="sheet-boxability" title="@{voie7-1}"></textarea>
<input type="text" name="attr_voie7-t1" class="sheet-boxability" title="@{voie7-t1}" />
<br><textarea name="attr_voie7-1" class="sheet-boxability" title="@{voie7-1}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v8r1" value="1" />
<textarea name="attr_voie8-1" class="sheet-boxability" title="@{voie8-1"></textarea>
<input type="text" name="attr_voie8-t1" class="sheet-boxability" title="@{voie8-t1}" />
<br><textarea name="attr_voie8-1" class="sheet-boxability" title="@{voie8-1"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v9r1" value="1" />
<textarea name="attr_voie9-1" class="sheet-boxability" title="@{voie9-1}"></textarea>
<input type="text" name="attr_voie9-t1" class="sheet-boxability" title="@{voie9-t1}" />
<br><textarea name="attr_voie9-1" class="sheet-boxability" title="@{voie9-1}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">2</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v7r2" value="1" />
<textarea name="attr_voie7-2" class="sheet-boxability" title="@{voie7-2}"></textarea>
<input type="text" name="attr_voie7-t2" class="sheet-boxability" title="@{voie7-t2}" />
<br><textarea name="attr_voie7-2" class="sheet-boxability" title="@{voie7-2}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v8r2" value="1" />
<textarea name="attr_voie8-2" class="sheet-boxability" title="@{voie8-2}"></textarea>
<input type="text" name="attr_voie8-t2" class="sheet-boxability" title="@{voie8-t2}" />
<br><textarea name="attr_voie8-2" class="sheet-boxability" title="@{voie8-2}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v9r2" value="1" />
<textarea name="attr_voie9-2" class="sheet-boxability" title="@{voie9-2}"></textarea>
<input type="text" name="attr_voie9-t2" class="sheet-boxability" title="@{voie9-t2}" />
<br><textarea name="attr_voie9-2" class="sheet-boxability" title="@{voie9-2}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">3</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v7r3" value="1" />
<textarea name="attr_voie7-3" class="sheet-boxability" title="@{voie7-3}"></textarea>
<input type="text" name="attr_voie7-t3" class="sheet-boxability" title="@{voie7-t3}" />
<br><textarea name="attr_voie7-3" class="sheet-boxability" title="@{voie7-3}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v8r3" value="1" />
<textarea name="attr_voie8-3" class="sheet-boxability" title="@{voie8-3}"></textarea>
<input type="text" name="attr_voie3-t3" class="sheet-boxability" title="@{voie8-t3}" />
<br><textarea name="attr_voie8-3" class="sheet-boxability" title="@{voie8-3}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v9r3" value="1" />
<textarea name="attr_voie9-3" class="sheet-boxability" title="@{voie9-3}"></textarea>
<input type="text" name="attr_voie9-t3" class="sheet-boxability" title="@{voie9-t3}" />
<br><textarea name="attr_voie9-3" class="sheet-boxability" title="@{voie9-3}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">4</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v7r4" value="1" />
<textarea name="attr_voie7-4" class="sheet-boxability" title="@{voie7-4}"></textarea>
<input type="text" name="attr_voie7-t4" class="sheet-boxability" title="@{voie7-t4}" />
<br><textarea name="attr_voie7-4" class="sheet-boxability" title="@{voie7-4}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v8r4" value="1" />
<textarea name="attr_voie8-4" class="sheet-boxability" title="@{voie8-4}"></textarea>
<input type="text" name="attr_voie8-t4" class="sheet-boxability" title="@{voie8-t4}" />
<br><textarea name="attr_voie8-4" class="sheet-boxability" title="@{voie8-4}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v9r4" value="1" />
<textarea name="attr_voie9-4" class="sheet-boxability" title="@{voie9-4}"></textarea>
<input type="text" name="attr_voie9-t4" class="sheet-boxability" title="@{voie9-t4}" />
<br><textarea name="attr_voie9-4" class="sheet-boxability" title="@{voie9-4}"></textarea>
</td>
</tr>
<tr>
<td class="sheet-boxtitresmall">5</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v7r5" value="1" />
<textarea name="attr_voie7-5" class="sheet-boxability" title="@{voie7-5}"></textarea>
<input type="text" name="attr_voie7-t5" class="sheet-boxability" title="@{voie7-t5}" />
<br><textarea name="attr_voie7-5" class="sheet-boxability" title="@{voie7-5}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v8r5" value="1" />
<textarea name="attr_voie8-5" class="sheet-boxability" title="@{voie8-5}"></textarea>
<input type="text" name="attr_voie8-t5" class="sheet-boxability" title="@{voie8-t5}" />
<br><textarea name="attr_voie8-5" class="sheet-boxability" title="@{voie8-5}"></textarea>
</td>
<td class="sheet-boxvoie">
<input type="checkbox" name="attr_v9r5" value="1" />
<textarea name="attr_voie9-5" class="sheet-boxability" title="@{voie9-5}"></textarea>
<input type="text" name="attr_voie9-t5" class="sheet-boxability" title="@{voie9-t5}" />
<br><textarea name="attr_voie9-5" class="sheet-boxability" title="@{voie9-5}"></textarea>
</td>
</tr>
</table>
@@ -4148,6 +4418,29 @@ function migrateSheet(verfdp) {
setAttrs(vrFlags);
});
}
// version 3.2 > 3.9
if (verfdp.major == 3 && verfdp.minor < 9) {
const abilities = [];
for (v = 1; v < 10; v++) {
for (r = 1; r < 6; r++) {
abilities.push(`voie${v}-${r}`);
}
}
getAttrs(abilities, function (values) {
const abilityAttrs = {};
Object.keys(values).forEach((ability) => {
if (!values[ability] || values[ability] === '') return;
const data = values[ability].split('\n');
const title = data.shift();
let desc = '';
if (data.length > 0) desc = data.join('\n');
abilityAttrs[ability] = desc;
abilityAttrs[ability.replace('-', '-t')] = title;
});
consoleLog(abilityAttrs);
setAttrs(abilityAttrs);
});
}
}
/**
@@ -5264,10 +5557,12 @@ on(
function (values) {
const vr = `${values.repeating_jetcapas_jetcapavoieno}${values.repeating_jetcapas_jetcapavoierang}`;
if (vr.length !== 4) return;
getAttrs([vr.replace('v', 'voie').replace('r', '-')], function (value) {
const rankData = value[Object.keys(value)[0]].split('\n');
const rankName = rankData.shift();
const rankDesc = rankData.length > 0 ? rankData.join('\n') : '';
const rankData = [];
rankData.push(vr.replace('v', 'voie').replace('r', '-t'));
rankData.push(vr.replace('v', 'voie').replace('r', '-'));
getAttrs(rankData, function (values) {
const rankName = values[Object.keys(values)[0]];
const rankDesc = values[Object.keys(values)[1]];
const updated = {
repeating_jetcapas_jetcapanom: rankName,
repeating_jetcapas_jetcapadesc: rankDesc,
@@ -5712,14 +6007,14 @@ function rebuildModAtkDM(section, buffAttr) {
updateMatchBuffs(modNom, modOn);
}
);
getSectionIDs('repeating_armes', function (ids) {
const attrs = {};
for (const id of ids) {
attrs[`repeating_armes_${id}_${buffAttr}`] = armebuff;
}
setAttrs(attrs, { silent: true });
});
}
getSectionIDs('repeating_armes', function (ids) {
const attrs = {};
for (const id of ids) {
attrs[`repeating_armes_${id}_${buffAttr}`] = armebuff;
}
setAttrs(attrs, { silent: true });
});
});
}
@@ -6718,11 +7013,11 @@ on('clicked:json_import', function () {
jsonData.paths.forEach((path, ix) => {
attrs[`voie${ix + 1}nom`] = path.name;
path.abilities.forEach((ability, rank) => {
const abilityAttr = `voie${ix + 1}-${rank + 1}`;
if (typeof ability === 'string') {
attrs[abilityAttr] = ability;
attrs[`voie${ix + 1}-t${rank + 1}`] = ability;
} else {
attrs[abilityAttr] = ability.name + '\n' + ability.description;
attrs[`voie${ix + 1}-t${rank + 1}`] = ability.name;
attrs[`voie${ix + 1}-${rank + 1}`] = ability.description;
}
});
});
+1 -1
View File
@@ -4,7 +4,7 @@
"authors": "StéphaneD",
"roll20userid": "84776",
"preview": "coc_v2.png",
"instructions": "Feuille de Personnage pour [Chroniques Oubliées Contemporain](http://www.black-book-editions.fr/produit.php?id=4349). Chroniques Oubliées Contemporain est le dérivé de Chroniques Oubliées Fantasy adapté pour jouer dans la période 1900-2100. Il permet de jouer des aventures du genre espionnage, commando militaire, enquêtes policières occultes, vampires contre garous, mutants, super-héros, épouvante, pulp, apocalypse zombie, cyberpunk, et plus. Version 3.8.1 (01/03/2021). [Lisez-moi](https://github.com/Roll20/roll20-character-sheets/blob/master/ChroniquesOublieesContemporain/README.md).",
"instructions": "Feuille de Personnage pour [Chroniques Oubliées Contemporain](http://www.black-book-editions.fr/produit.php?id=4349). Chroniques Oubliées Contemporain est le dérivé de Chroniques Oubliées Fantasy adapté pour jouer dans la période 1900-2100. Il permet de jouer des aventures du genre espionnage, commando militaire, enquêtes policières occultes, vampires contre garous, mutants, super-héros, épouvante, pulp, apocalypse zombie, cyberpunk, et plus. Version 3.9.0 (30/03/2021). [Lisez-moi](https://github.com/Roll20/roll20-character-sheets/blob/master/ChroniquesOublieesContemporain/README.md).",
"useroptions": [
{
"attribute": "coc_setting",
+2 -2
View File
@@ -4,6 +4,6 @@
"authors": "Tapiochre",
"roll20userid": "73532",
"preview": "CortexPrime-Hammerhead.png",
"legacy": true,
"legacy": false,
"instructions": "Cortex Prime: Hammerhead Character Sheet\n\n##Set up\n\n- Open the Journal tab, and add a new Character.\n- Click on save changes.\n- Open the Character Sheet Tab\n- Tick the Edit Checkbox.\n- Select One of the Portraits, or select the dot next to the word Portrait to set no portrait.\n- Set the dice values for the Attributes, Training Packages, and Relationships using the drop downs.\n- Untick the Edit check box to hide the editor\n- Enter the remaining details - Name, Description, Value statements, Relationship names, Distinctions title and description in the editable text fields.\n\n##Stress\n\nI have been using API macros to adjust Stress values. But these are simply Attributes (PhysicalStress, MentalStress, SocialStress).\nYou can add these to the Attributes and Abilities tab manually, and assign values ranging from 2 to show the character has no stress - 4,6,8,10 or 12 corresponding to the dice value, or a value of 14 indicates the character has been stressed out.\n\n###Diceroller\n\nUsing the Dice-Pool-Builder button will ask the player which traits to include and roll in a dice pool. The output to the chat panel will also indicate if the character is shaken or stricken. \n\nIf you have added a stress and its not showing check the spelling, Capitalisation, and dice value to be sure you got those all correct.\n\nAny feedback, or requests - Im happy to hear.\n\n---\n\nHammerheads is a part of the Cortex Prime Game Handbook published by Fandom Inc, and was written, designed, and developed by Cam Banks.\nHammerheads uses the Cortex system. The Cortex system and the Fandom logos are © 2020 Fandom Inc. All rights reserved. Reference to other copyrighted material in no way constitutes a challenge to the respective copyright holders of that material.\nArtwork and graphics © and ™ Fandom Inc, illustrated by Ten Ten Studios Malaysia. All rights reserved.\nCharacter Portraits sourced from https://thispersondoesnotexist.com/\n"
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -43
View File
@@ -1,43 +1 @@
Tales of Xadia: The Dragon Prince RPG - Playtest Character Sheet - Cortex Prime
##Set up
- Open the Journal tab, and add a new Character.
- Click on save changes.
- Open the Attributes and Abilities tab.
- Add an attribute called 'Edit' and assign it the value'on'.
- Now switch to the Character Sheet tab.
- Select if this is going to be a PC or Catalyst character.
- Select the Character name from the list - this will select the character portrait and fill out the distinction blocks. Select 'None' if you are not using any of the pregen characters.
- Set the dice values for the Attributes, Values, and Specialities using the further drop downs.
- Hide the Editor by removing the edit field from the Attributes and Abilities tab, or by assigning it the value 'off'.
- Enter the remaining details - Name, Description, Value statements, Asset details and custom Distinctions in the editable text fields.
- Repeat this for each of the remaining characters.
##Dice Pool Builder
The inbuilt Dice Pool Builder pulls from the character's attributes, rolls and keeps highest two dice in the pool by default. I refer to this as the suggested best result. If you create a Catalyst character the roller will adjust if you specified this in the edit feature.
##Stress and Trauma
I have been using API macro's to adjust Stress values. But these are simply Attributes (Afraid, Angry, Corrupted, Exhausted, Injured, Insecure and AfraidTrauma, AngryTrauma, CorruptedTrauma, ExhaustedTrauma, InjuredTrauma, InsecureTrauma).
As with the Edit attribute you can add these to the Attributes and Abilities tab manually, and assign values ranging from the 4,6,8,10 or 12 corresponding to the dice value.
The traits will only display on the character sheet as they are assigned to the character, in the same manner as the Specialities. If you have added a stress and it's not showing check the spelling, Capitalisation, and dice value to be sure you got those all correct.
*Note* ToX does not use d4 stress so this value can be used to hide these fields on the character sheet.
Any feedback, or requests - I'm happy to hear.
---
Tales of Xadia: The Dragon Prince Roleplaying Game is published by Fandom Inc.
Tales of Xadia: The Dragon Prince Roleplaying Game uses the Cortex system. The Cortex system and the Fandom logos are © 2020 Fandom Inc. All rights reserved. Reference to other copyrighted material in no way constitutes a challenge to the respective copyright holders of that material.
The Dragon Prince and all associated characters and elements are © 2020 Wonderstorm, Inc. and used under license by Fandom Inc. All rights reserved.
Artwork and graphics © and ™ Wonderstorm, Inc. All rights reserved.
##Changelog
### v.1.2 2021-03-05
Tales of Xadia: The Dragon Prince RPG - Playtest Character Sheet - Cortex Prime\n\n##Set up\n\n- Open the Journal tab, and add a new Character.\n- Click on save changes.\n- Now switch to the Character Sheet tab.\n- Check the Edit box in the top left corner.\n- Select the Character Portrait from the list - this will select and fill out the distinction blocks. Select 'Tales of Xadia logo' if you are not using any of the pregen characters.\n- Set the dice values for the Attributes, Values, and Specialities using the further drop downs.\n- Uncheck the Edit box to hide the editor.\n- Enter the remaining details - Name, Description, Value statements, Asset details and (if needed) custom Distinctions in the editable text fields.\n\n- Repeat this for each of the remaining characters.\n\n##Dice Pool Builder\n\nThe inbuilt Dice Pool Builder pulls from the character's attributes, rolls and displays the dice used and what they rolled. Hitches show up with black icons.\n\n*NOTE* This dice roller does not support the 3D dice feature in Roll20. - Also it won't work with the Beta Mobile App.\n\n##Stress and Trauma\n\nI have been using API macro's to adjust Stress values. But these are simply Attributes (Afraid, Angry, Corrupted, Exhausted, Injured, Insecure and AfraidTrauma, AngryTrauma, CorruptedTrauma, ExhaustedTrauma, InjuredTrauma, InsecureTrauma).\nAs with the Edit attribute you can add these to the Attributes and Abilities tab manually, and assign values ranging from the 4,6,8,10 or 12 corresponding to the dice value.\n\nThe traits will only display on the character sheet as they are assigned to the character, in the same manner as the Specialities. If you have added a stress and it's not showing check the spelling, Capitalisation, and dice value to be sure you got those all correct.\n*NOTE* ToX does not use d4 stress so this value can be used to hide these fields on the character sheet.\n\nAny feedback, or requests - I'm happy to hear.\n\n---\n\nTales of Xadia: The Dragon Prince Roleplaying Game is published by Fandom Inc.\nTales of Xadia: The Dragon Prince Roleplaying Game uses the Cortex system. The Cortex system and the Fandom logos are © 2020 Fandom Inc. All rights reserved. Reference to other copyrighted material in no way constitutes a challenge to the respective copyright holders of that material.\nThe Dragon Prince and all associated characters and elements are © 2020 Wonderstorm, Inc. and used under license by Fandom Inc. All rights reserved.\nArtwork and graphics © and ™ Wonderstorm, Inc. All rights reserved.\n\n\n##Changelog\n\n### v.1.2 2021-03-30\n\nUpdated the code base to match the standards used in my Cortex Hammerheads build.\nAdded support for Mobile Display.\nAdded a Roll Template matching the style in the Hammerheads build, customised to ToX.\n\n### v.1.2 2021-03-05
@@ -6,5 +6,5 @@
"preview": "ToX-CortexPrime.png",
"instructions": "For use with the Cortex Prime Tales of Xadia Playtest.",
"legacy": true,
"instructions": "Tales of Xadia: The Dragon Prince RPG - Playtest Character Sheet - Cortex Prime\n\n##Set up\n\n- Open the Journal tab, and add a new Character.\n- Click on save changes.\n- Open the Attributes and Abilities tab.\n- Add an attribute called 'Edit' and assign it the value'on'.\n- Now switch to the Character Sheet tab.\n- Select if this is going to be a PC or Catalyst character. \n- Select the Character name from the list - this will select the character portrait and fill out the distinction blocks. Select 'None' if you are not using any of the pregen characters.\n- Set the dice values for the Attributes, Values, and Specialities using the further drop downs.\n- Hide the Editor by removing the edit field from the Attributes and Abilities tab, or by assigning it the value 'off'.\n- Enter the remaining details - Name, Description, Value statements, Asset details and custom Distinctions in the editable text fields.\n\n- Repeat this for each of the remaining characters.\n\n##Dice Pool Builder\n\nThe inbuilt Dice Pool Builder pulls from the character's attributes, rolls and keeps highest two dice in the pool by default. I refer to this as the suggested best result. If you create a Catalyst character the roller will adjust if you specified this in the edit feature.\n\n##Stress and Trauma\n\nI have been using API macro's to adjust Stress values. But these are simply Attributes (Afraid, Angry, Corrupted, Exhausted, Injured, Insecure and AfraidTrauma, AngryTrauma, CorruptedTrauma, ExhaustedTrauma, InjuredTrauma, InsecureTrauma).\nAs with the Edit attribute you can add these to the Attributes and Abilities tab manually, and assign values ranging from the 4,6,8,10 or 12 corresponding to the dice value.\n\nThe traits will only display on the character sheet as they are assigned to the character, in the same manner as the Specialities. If you have added a stress and it's not showing check the spelling, Capitalisation, and dice value to be sure you got those all correct.\n*Note* ToX does not use d4 stress so this value can be used to hide these fields on the character sheet.\n\nAny feedback, or requests - I'm happy to hear.\n\n---\n\nTales of Xadia: The Dragon Prince Roleplaying Game is published by Fandom Inc.\nTales of Xadia: The Dragon Prince Roleplaying Game uses the Cortex system. The Cortex system and the Fandom logos are © 2020 Fandom Inc. All rights reserved. Reference to other copyrighted material in no way constitutes a challenge to the respective copyright holders of that material.\nThe Dragon Prince and all associated characters and elements are © 2020 Wonderstorm, Inc. and used under license by Fandom Inc. All rights reserved.\nArtwork and graphics © and ™ Wonderstorm, Inc. All rights reserved.\n\n\n##Changelog\n\n\n### v.1.2 2021-03-05"
"instructions": "Tales of Xadia: The Dragon Prince RPG - Playtest Character Sheet - Cortex Prime\n\n##Set up\n\n- Open the Journal tab, and add a new Character.\n- Click on save changes.\n- Now switch to the Character Sheet tab.\n- Check the Edit box in the top left corner.\n- Select the Character Portrait from the list - this will select and fill out the distinction blocks. Select 'Tales of Xadia logo' if you are not using any of the pregen characters.\n- Set the dice values for the Attributes, Values, and Specialities using the further drop downs.\n- Uncheck the Edit box to hide the editor.\n- Enter the remaining details - Name, Description, Value statements, Asset details and (if needed) custom Distinctions in the editable text fields.\n\n- Repeat this for each of the remaining characters.\n\n##Dice Pool Builder\n\nThe inbuilt Dice Pool Builder pulls from the character's attributes, rolls and displays the dice used and what they rolled. Hitches show up with black icons.\n\n*NOTE* This dice roller does not support the 3D dice feature in Roll20. - Also it won't work with the Beta Mobile App.\n\n##Stress and Trauma\n\nI have been using API macro's to adjust Stress values. But these are simply Attributes (Afraid, Angry, Corrupted, Exhausted, Injured, Insecure and AfraidTrauma, AngryTrauma, CorruptedTrauma, ExhaustedTrauma, InjuredTrauma, InsecureTrauma).\nAs with the Edit attribute you can add these to the Attributes and Abilities tab manually, and assign values ranging from the 4,6,8,10 or 12 corresponding to the dice value.\n\nThe traits will only display on the character sheet as they are assigned to the character, in the same manner as the Specialities. If you have added a stress and it's not showing check the spelling, Capitalisation, and dice value to be sure you got those all correct.\n*NOTE* ToX does not use d4 stress so this value can be used to hide these fields on the character sheet.\n\nAny feedback, or requests - I'm happy to hear.\n\n---\n\nTales of Xadia: The Dragon Prince Roleplaying Game is published by Fandom Inc.\nTales of Xadia: The Dragon Prince Roleplaying Game uses the Cortex system. The Cortex system and the Fandom logos are © 2020 Fandom Inc. All rights reserved. Reference to other copyrighted material in no way constitutes a challenge to the respective copyright holders of that material.\nThe Dragon Prince and all associated characters and elements are © 2020 Wonderstorm, Inc. and used under license by Fandom Inc. All rights reserved.\nArtwork and graphics © and ™ Wonderstorm, Inc. All rights reserved.\n\n\n##Changelog\n\n### v.1.2 2021-03-30\n\nUpdated the code base to match the standards used in my Cortex Hammerheads build.\nAdded support for Mobile Display.\nAdded a Roll Template matching the style in the Hammerheads build, customised to ToX.\n\n### v.1.2 2021-03-05"
}
+2 -2
View File
@@ -123,7 +123,7 @@
"StrengthBonus-abbr": "BF",
"UnnaturalStrengthBonus-abbr": "Inn. BF",
"PowerArmorStrengthBonus-abbr": "SA BF",
"MWRelevantBonus": "Bono Relevante ",
"MWRelevantBonus": "Bono",
"Movement": "Movimiento",
"HalfMove": "Mov. Parcial",
"FullMove": "Completo",
@@ -179,7 +179,7 @@
"PowerArmorStrengthBonus": "Bonificador de Fuerza mejorado de Servoarmadura Astartes",
"UseSB": "¿Usar el BF para esta arma?",
"PowerArmorMovementBonus": "Bono de Movimiento de la Servoarmadura Astartes",
"Unknown": "Desconocido",
"Unknown": "Descon.",
"Basic": "Base",
"BasicKnowledge": "Cono.Base",
"Group": "Grupo",
+11 -15
View File
@@ -795,7 +795,6 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"dev": true,
"requires": {
"object-keys": "^1.0.12"
}
@@ -1832,8 +1831,7 @@
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"gauge": {
"version": "2.7.4",
@@ -2355,8 +2353,7 @@
"has-symbols": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
"dev": true
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
},
"has-unicode": {
"version": "2.0.1",
@@ -3286,8 +3283,7 @@
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
"object-visit": {
"version": "1.0.1",
@@ -3301,7 +3297,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"dev": true,
"requires": {
"define-properties": "^1.1.2",
"function-bind": "^1.1.1",
@@ -4663,9 +4658,9 @@
"dev": true
},
"y18n": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
"integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
"integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
},
"yallist": {
"version": "2.1.2",
@@ -4700,11 +4695,12 @@
}
},
"yargs-parser": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
"integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz",
"integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==",
"requires": {
"camelcase": "^3.0.0"
"camelcase": "^3.0.0",
"object.assign": "^4.1.0"
},
"dependencies": {
"camelcase": {
+1 -1
View File
@@ -5,5 +5,5 @@
"roll20userid": "668591,2908748",
"preview": "Demon_Gate_Scripted.png",
"instructions": "**Demon Gate**\n\n Scripted sheets for Demon Gate.",
"legacy": true
"legacy": false
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

-46
View File
@@ -1,46 +0,0 @@
.charsheet label {
display: inline-block;
width: 75px;
text-align: left;
font-size: 1.1em;
/* display: inline-block;
width: 75px;
text-align: right */
}
.charsheet input {
display: inline-block;
/* width: 165px; */
width: 110px;
}
.sheet-col strong.sheet-dee {
font-size: 1.4em;
font-weight: bold;
padding-right: 4px;
}
.charsheet input.sheet-short {
width: 3.5em;
}
.charsheet {
/*background-image: url("http://freeseamlesstextures.com/images/28-faded-parchment-background-sml.jpg");*/
background-image: url("https://i.imgur.com/VuZht2r.gif");
background-size: 100% 100%;
}
.charsheet table td, .charsheet table th {
font-size: 1.1em;
font-weight: bold;
text-align: left;
}
select.sheet-dtype {
width: 60px;
vertical-align: top;
}
-646
View File
@@ -1,646 +0,0 @@
<div class="sheet-3colrow">
<div class="sheet-col">
<h3 style="text-align: center;"> Player Information </h3>
<hr/>
<table style="width:100%">
<tr><td>Character Name:</td><td><input type="text" name="attr_character_name" /></td></tr>
<tr><td>Title:</td><td><input type="text" name="attr_character_title" /></td></tr>
<tr><td>Player's Name:</td><td><input type="text" name="attr_player_name" /></td></tr>
<tr><td>Race:</td><td><input type="text" name="attr_race" /></td></tr>
<tr><td>Class:</td><td><input type="text" name="attr_class" /></td></tr>
<tr><td>Level:</td><td><input type="text" name="attr_level" /></td></tr>
<tr><td>Saga Points:</td><td><input type="text" name="attr_saga_points" /></td></tr>
<tr><td>Saved Saga Points:</td><td><input type="text" name="attr_saved_saga_points" /></td></tr>
<tr><td>Frenzy Pool:</td><td><input type="text" name="attr_frenzy_pool" /></td></tr>
</table>
</div>
<div class="sheet-col">
<p style="text-align: center;">
<!-- <img src="https://i.imgur.com/b0yuCGt.gif" style="max-height: 100px;" /> -->
<img src="https://i.imgur.com/SItbiH4.gif" style="max-height: 100x" />
</p>
<hr/>
<table style="width:100%">
<tr><td>Current Hit Points:</td><td><input type="text" name="attr_hit_points" /></td></tr>
<tr><td>Max Hit Points:</td><td><input type="text" name="attr_hit_points_max" /></td></tr>
<tr><td>Total Armor Value:</td><td><input type="text" name="attr_total_armor_value" /></td></tr>
<tr><td>Initiative Roll:</td><td><button type='roll' name='roll_initiative' value=' &{template:default} {{name=Initiative}} {{Roll = [[d10+@{dexterity_initiative_mod}+?{Modifier for this roll only} &{tracker}]]}}' ></td></tr>
</table>
</div>
<div class="sheet-col">
<h3 style="text-align: center;"> Actions and Attacks </h3>
<hr/>
<table style="width:100%">
<tr><td>Unarmed:</td><td><input type="text" name="attr_unarmed_attack" /></td></tr>
<tr><td>Melee:</td><td><input type="text" name="attr_melee_attack" /></td></tr>
<tr><td>Projectile:</td><td><input type="text" name="attr_projectile_attack" /></td></tr>
<tr><td>Magic:</td><td><input type="text" name="attr_magic_attack" /></td></tr>
</table>
<hr/>
<h3 style="text-align: center;"> Defense</h3>
<hr/>
<table style="width:100%">
<tr><td>+Physical:</td><td><input type="text" name="attr_physical_defense" /></td><td><button type='roll' name='roll_physical_defense' value=' &{template:default} {{name=Defense Roll}} {{Defense = Physical}} {{Roll = [[1d20+@{physical_defense}]]}} '></td></tr>
<tr><td>+Magical:</td><td><input type="text" name="attr_magic_defense" /></td><td><button type='roll' name='roll_magic_defense' value=' &{template:default} {{name=Defense Roll}} {{Defense = Magic}} {{Roll = [[1d20+@{magic_defense}]]}} '></td></tr>
<tr><td>+Mental:</td><td><input type="text" name="attr_mental_defense" /></td><td><button type='roll' name='roll_mental_defense' value=' &{template:default} {{name=Defense Roll}} {{Defense = Mental}} {{Roll = [[1d20+@{mental_defense}]]}} '></td></tr>
</table>
</div>
</div>
<hr/>
<div class="sheet-3colrow">
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Attributes</h3>
<hr/>
<table style="width:100%">
<tr><th>Strength</th><th></th><th>Rank</th><th>Dice</th></tr>
<td><input type="text" class="sheet-short" name="attr_strength" /></td>
<td><input type="text" class="sheet-short" name="attr_strength_mod" value="( )"/></td>
<td><input type="text" class="sheet-short" name="attr_strength_rank" /></td>
<td><input type="text" class="sheet-short" name="attr_strength_dice" /><button type='roll' name='roll_strength' value=' &{template:default} {{name=Strength Roll}} {{Strength=@{strength}}} {{Roll = [[@{strength_dice}]]}}'></td>
</table>
<table style="width:100%">
<tr><td>DMG Modifier:</td><td><input type="text" name="attr_strength_dam_modifier" /></td></tr>
<tr><td>Weight Allow:</td><td><input type="text" name="attr_strength_weight_allow" /></td></tr>
</table>
<hr/>
<table style="width:100%">
<tr><th>Dexterity</th><th></th><th>Rank</th><th>Dice</th></tr>
<td><input type="text" class="sheet-short" name="attr_dexterity" /></td>
<td><input type="text" class="sheet-short" name="attr_dexterity_mod" value="( )"/></td>
<td><input type="text" class="sheet-short" name="attr_dexterity_rank" /></td>
<td><input type="text" class="sheet-short" name="attr_dexterity_dice" /><button type='roll' name='roll_dexterity' value=' &{template:default} {{name=Dexterity Roll}} {{Dexterity=@{dexterity}}} {{Roll = [[@{dexterity_dice}]]}}'></td>
</table>
<table style="width:100%">
<tr><td>Defense Modifier:</td><td><input type="text" name="attr_dexterity_defense_mod" /></td></tr>
<tr><td>Initiative Modifier:</td><td><input type="text" name="attr_dexterity_initiative_mod" /></td></tr>
<tr><td>Movement:</td><td></label><input type="text" name="attr_dexterity_movement_mod" /></td></tr>
</table>
<hr/>
<table style="width:100%">
<tr><th>Body</th><th></th><th>Rank</th><th>Dice</th></tr>
<td><input type="text" class="sheet-short" name="attr_body" /></td>
<td><input type="text" class="sheet-short" name="attr_body_mod" value="( )"/></td>
<td><input type="text" class="sheet-short" name="attr_body_rank" /></td>
<td><input type="text" class="sheet-short" name="attr_body_dice" /><button type='roll' name='roll_body' value=' &{template:default} {{name=Body Roll}} {{Body=@{body}}} {{Roll = [[@{body_dice}]]}}'></td>
</table>
<table style="width:100%">
<tr><td>Body Save:</td><td><input type="text" name="attr_body_body_save" /></td></tr>
<tr><td>Toughness:</td><td><input type="text" name="attr_body_toughness" /></td></tr>
<tr><td>Chi:</td><td><input type="text" name="attr_body_chi" /></td></tr>
</table>
<hr/>
<table style="width:100%">
<tr><th>Perception</th><th></th><th>Rank</th><th>Dice</th></tr>
<td><input type="text" class="sheet-short" name="attr_perception" /></td>
<td><input type="text" class="sheet-short" name="attr_perception_mod" value="( )"/></td>
<td><input type="text" class="sheet-short" name="attr_perception_rank" /></td>
<td><input type="text" class="sheet-short" name="attr_perception_dice" /><button type='roll' name='roll_perception' value=' &{template:default} {{name=Perception Roll}} {{Perception=@{perception}}} {{Roll = [[@{perception_dice}]]}}'></td>
</table>
<table style="width:100%">
<tr><td>Shot Dmg Mod:</td><td><input type="text" name="attr_perception_shot_damage_mod" /></td></tr>
</table>
<hr/>
<table style="width:100%">
<tr><th>Intelligence</th><th></th><th>Rank</th><th>Dice</th></tr>
<td><input type="text" class="sheet-short" name="attr_intelligence" /></td>
<td><input type="text" class="sheet-short" name="attr_intelligence_mod" value="( )"/></td>
<td><input type="text" class="sheet-short" name="attr_intelligence_rank" /></td>
<td><input type="text" class="sheet-short" name="attr_intelligence_dice" /><button type='roll' name='roll_intelligence' value=' &{template:default} {{name=Intelligence Roll}} {{Intelligence=@{intelligence}}} {{Roll = [[@{intelligence_dice}]]}}'></td>
</table>
<table style="width:100%">
<tr><td>Spell Time:</td><td><input type="text" name="attr_intelligence_spell_time" /></td></tr>
</table>
<hr/>
<table style="width:100%">
<tr><th>Willpower</th><th></th><th>Rank</th><th>Dice</th></tr>
<td><input type="text" class="sheet-short" name="attr_willpower" /></td>
<td><input type="text" class="sheet-short" name="attr_willpower_mod" value="( )"/></td>
<td><input type="text" class="sheet-short" name="attr_willpower_rank" /></td>
<td><input type="text" class="sheet-short" name="attr_willpower_dice" /><button type='roll' name='roll_willpower' value=' &{template:default} {{name=Willpower Roll}} {{Willpower=@{willpower}}} {{Roll = [[@{willpower_dice}]]}}'></td>
</table>
<table style="width:100%">
<tr><td>Mana:</td><td><input type="text" name="attr_intelligence_mana" /></td></tr>
<tr><td>Mental Defense:</td><td><input type="text" name="attr_intelligence_mental_defense" /></td></tr>
<tr><td>Fortitude:</td><td><input type="text" name="attr_intelligence_fortitude" /></td></tr>
</table>
<hr/>
<table style="width:100%">
<tr><th>Charisma</th><th></th><th>Rank</th><th>Dice</th></tr>
<td><input type="text" class="sheet-short" name="attr_charisma" /></td>
<td><input type="text" class="sheet-short" name="attr_charisma_mod" value="( )"/></td>
<td><input type="text" class="sheet-short" name="attr_charisma_rank" /></td>
<td><input type="text" class="sheet-short" name="attr_charisma_dice" /><button type='roll' name='roll_charisma' value=' &{template:default} {{name=Charisma Roll}} {{Charisma=@{charisma}}} {{Roll = [[@{charisma_dice}]]}}'></td>
</table>
<table style="width:100%">
<tr><td>Reputation:</td><td><input type="text" name="attr_charisma_reputation" /></td></tr>
<tr><td>Social Pool:</td><td><input type="text" name="attr_charisma_social_pool" /></td></tr>
</table>
<hr/>
<h3 style="margin-bottom: 10px;">Character Description</h3>
<table>
<td>Physical Beauty</td><td><input type="text" class="sheet-short" name="attr_description_physical_beauty" /></td>
<td>Gender</td><td><input type="text" class="sheet-short" name="attr_description_gender" /></td>
<td>Height</td><td><input type="text" class="sheet-short" name="attr_description_height" /></td>
<tr>
<td>Weight</td><td><input type="text" class="sheet-short" name="attr_description_weight" /></td>
<td>Skin Color</td><td><input type="text" class="sheet-short" name="attr_description_skin_color" /></td>
<td>Hair</td><td><input type="text" class="sheet-short" name="attr_description_hair" /></td>
</tr>
<tr>
<td>Name Day</td><td><input type="text" class="sheet-short" name="attr_description_name_day" /></td>
<td>Age</td><td><input type="text" class="sheet-short" name="attr_description_age" /></td>
<td>Origin</td><td><input type="text" class="sheet-short" name="attr_description_origin" /></td>
</tr>
</table>
</div>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Skills</h3>
<hr/>
<h3 style="margin-bottom: 10px;">Combat Skills</h3>
<table style="width:100%">
<tr><th>Unarmed Combat</th><th></th><th>+ to hit</th><th>DMG</th></tr>
<td><input type="text" name="attr_unarmed_combat" /></td><td></td>
<td><input type="text" class="sheet-short" name="attr_unarmed_combat_to_hit" /></td>
<td><input type="text" class="sheet-short" name="attr_unarmed_combat_dmg" />
</table>
<table style="width:100%">
<tr><td>Attack:</td><td><button type='roll' name='roll_unarmed_combat' value=' &{template:default} {{name=Unarmed Combat Roll}} {{Roll = [[d20+@{unarmed_combat_to_hit}]]}} '></td></tr>
<tr><td>Damage:</td><td><button type='roll' name='roll_unarmed_combat_damage' value=' &{template:default} {{name=Unarmed Combat Damage}} {{Damage = [[@{unarmed_combat_dmg}]]}}'></td></tr>
<tr><td>Damage with Multipliers:</td><td><button type='roll' name='roll_unarmed_combat_damage' value=' &{template:default} {{name=Multiplied Unarmed Combat Damage}} {{Weapon = Unarmed}} {{Multiplier = ?{Multiplier?}}}{{Damage Roll = [[(@{unarmed_combat_dmg})*?{Multiplier?}]]}}'></td></tr>
</table>
<hr/>
<h3 style="margin-bottom: 10px;">Weapon Proficiencies</h3>
<fieldset class="repeating_weapon-proficiency">
<table style="width:100%">
<tr><th>Name</th></tr>
<td><input type="text" name="attr_skill_weapon_proficiency" /></td>
</table>
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Specializations </h3>
<fieldset class="repeating_weapon-specialization">
<table style="width:100%">
<tr><th>Spec</th><th>+ to hit</th></tr>
<tr><td><input type="text" name="attr_skill_weapon_specialization" /></td>
<td><input type="text" class="sheet-short" name="attr_skill_weapon_specialization_to_hit" /></td></tr>
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Character Skills</h3>
<fieldset class="repeating_character-skills">
<table style="width:100%">
<tr><th>Skill</th><th>Rating</th><th>Level</th><th>Dice</th></tr>
<td><input type="text" name="attr_character_skill" /></td>
<td><input type="text" class="sheet-short" name="attr_character_skill_rating" /></td>
<td><input type="text" class="sheet-short" name="attr_character_skill_level" /></td>
<td><input type="text" class="sheet-short" name="attr_character_skill_dice" /></td>
</table>
<table style="width:100%">
<tr><td>Skill Roll:</td><td><button type='roll' name='roll_character_skill_dice' value=' &{template:default} {{name=Character Skill Roll}} {{Skill = @{character_skill}}} {{Roll = [[@{character_skill_dice}]]}} '></td></tr>
</table>
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Fluent Languages</h3>
<fieldset class="repeating_fluent-languages">
<input type="text" name="attr_fluent_languages" />
</fieldset>
</div>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Weapons</h3>
<hr/>
<fieldset class="repeating_weapons">
<table style="width:100%">
<tr><th>Name</th><th>+ to hit</th></tr>
<td><input type="text" name="attr_weapon_name" /></td>
<td><input type="text" class="sheet-short" name="attr_weapon_plus_to_hit" /></td>
</table>
<table style="width:100%">
<tr></tr><td><label>DMG:</label></td><td><input type="text" name="attr_weapon_damage" /></td></tr>
<tr></tr><td><label>Durability:</label></td><td><input type="text" name="attr_weapon_durability" /></td></tr>
<tr></tr><td><label>Range:</label></td><td><input type="text" name="attr_weapon_range" /></td></tr>
<tr></tr><td><label>Weight:</label></td><td><input type="text" name="attr_weapon_weight" /></td></tr>
<tr></tr><td><label>Ammo:</label></td><td><input type="text" name="attr_weapon_ammo" /></td></tr>
<tr></tr><td><label>Accessories:</label></td><td><input type="text" name="attr_weapon_accessories" /></td></tr>
</table>
<table style="width:100%">
<tr><td>Attack:</td><td><button type='roll' name='roll_weapon_hit' value=' &{template:default} {{name=Weapon Attack}} {{Weapon = @{weapon_name}}} {{Attack Roll = [[d20+@{weapon_plus_to_hit}]]}} '></td></tr>
<tr><td>Damage:</td><td><button type='roll' name='roll_weapon_damage' value=' &{template:default} {{name=Weapon Damage}} {{Weapon = @{weapon_name}}} {{Damage Roll = [[@{weapon_damage}]]}}'></td></tr>
<tr><td>Damage with Multipliers:</td><td><button type='roll' name='roll_weapon_damage' value=' &{template:default} {{name=Multiplied Weapon Damage}} {{Weapon = @{weapon_name}}} {{Multiplier = ?{Multiplier?}}}{{Damage Roll = [[(@{weapon_damage})*?{Multiplier?}]]}}'></td></tr>
</table>
<hr/>
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Armor and Clothing</h3>
<table style="width:100%">
<tr><th></th><th>Name</th><th>Dur</th><th>AR</th></tr>
<tr></tr><td>Clothing</td><td><input type="text" name="attr_armor_clothing_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_clothing_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_clothing_ar" /></td></tr>
<tr></tr><td>Torso</td><td><input type="text" name="attr_armor_torso_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_torso_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_torso_ar" /></td></tr>
<tr></tr><td>Cloak</td><td><input type="text" name="attr_armor_cloak_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_cloak_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_cloak_ar" /></td></tr>
<tr></tr><td>Helmet</td><td><input type="text" name="attr_armor_helmet_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_helmet_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_hemlet_ar" /></td></tr>
<tr></tr><td>Amulet</td><td><input type="text" name="attr_armor_amulet_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_amulet_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_amulet_ar" /></td></tr>
<tr></tr><td>Pauldrons</td><td><input type="text" name="attr_armor_pauldrons_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_pauldrons_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_pauldrons_ar" /></td></tr>
<tr></tr><td>Bracers</td><td><input type="text" name="attr_armor_bracers_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_bracers_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_bracers_ar" /></td></tr>
<tr></tr><td>Greaves</td><td><input type="text" name="attr_armor_greaves_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_greaves_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_greaves_ar" /></td></tr>
<tr></tr><td>Belt</td><td><input type="text" name="attr_armor_belt_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_belt_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_belt_ar" /></td></tr>
<tr></tr><td>Shield</td><td><input type="text" name="attr_armor_shield_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_shield_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_shield_ar" /></td></tr>
<tr></tr><td>Boots</td><td><input type="text" name="attr_armor_boots_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_boots_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_boots_ar" /></td></tr>
<tr></tr><td>Gloves</td><td><input type="text" name="attr_armor_gloves_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_gloves_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_gloves_ar" /></td></tr>
<tr></tr><td>Ring</td><td><input type="text" name="attr_armor_ring_name" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_ring_durability" /></td>
<td><input type="text" class="sheet-short" name="attr_armor_ring_ar" /></td></tr>
</table>
<hr/>
<h3 style="margin-bottom: 10px;">Resistances</h3>
<table>
<td>Fire</td><td><input type="text" class="sheet-short" name="attr_resistance_fire" /></td>
<td>Cold</td><td><input type="text" class="sheet-short" name="attr_resistance_cold" /></td>
<td>Toxic</td><td><input type="text" class="sheet-short" name="attr_resistance_toxic" /></td>
<tr>
<td>Electrical</td><td><input type="text" class="sheet-short" name="attr_resistance_electrical" /></td>
<td>Sonic</td><td><input type="text" class="sheet-short" name="attr_resistance_sonic" /></td>
</tr>
</table>
<hr/>
<h3 style="margin-bottom: 10px;">Equipent(belt)</h3>
<fieldset class="repeating_equipment-belt">
<input type="text" name="attr_equipment_belt" />
</fieldset>
</div>
</div>
<!-- This will be page 2, if we ever figure out tabs -->
<div class="sheet-3colrow">
<hr/>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Racial Abilities</h3>
<fieldset class="repeating_racial-ability">
<input type="text" name="attr_racial_ability" />
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Class Abilities</h3>
<fieldset class="repeating_class-ability">
<table style="width:100%">
<tr><th>Name</th><th>Rank</th></tr>
<td><input type="text" name="attr_class_ability" /></td>
<td><input type="text" class="sheet-short" name="attr_class_ability_rank" /></td></tr>
</table>
</fieldset>
</div>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Character Traits</h3>
<fieldset class="repeating_character-traits">
<input type="text" name="attr_character_traits" />
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Talents</h3>
<fieldset class="repeating_talents">
<input type="text" name="attr_talents" />
</fieldset>
</div>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Backpack or Stash</h3>
<fieldset class="repeating_backpack-or-stash">
<input type="text" name="attr_backpack_or_stash" />
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Loot</h3>
<table style="width:100%">
<tr><td>Mertacullum</td><td><input type="text" class="sheet-short" name="attr_mertacullum" /></td></tr>
<tr><td>Gold Talons</td><td><input type="text" class="sheet-short" name="attr_gold_talons" /></td></tr>
<tr><td>Silver (shillings)</td><td><input type="text" class="sheet-short" name="attr_silver_shillings" /></td></tr>
<tr><td>Copper (crets)</td><td><input type="text" class="sheet-short" name="attr_copper_shardsm" /></td></tr>
<tr><td>Bits (bones)</td><td><input type="text" class="sheet-short" name="attr_bone_crets" /></td></tr>
</table>
<h3 style="margin-bottom: 10px;">Misc Treasure</h3>
<fieldset class="repeating_misc-treasure">
<input type="text" name="attr_misc_treasure" />
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Hideouts</h3>
<fieldset class="repeating_hideouts">
<input type="text" name="attr_hideouts" />
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Total Hideouts</h3>
<table style="width:100%">
<tr><th>Income</th><th>Upkeep</th></tr>
<td><input type="text" name="attr_hideout_income" /></td>
<td><input type="text" name="attr_hideout_upkeep" /></td></tr>
</table>
</div>
</div>
<!-- This will be page 3, if we ever figure out tabs -->
<div class="sheet-3colrow">
<hr/>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Religious Beliefs</h3>
<table style="width:100%">
<tr><td>Path</td><td><input type="text" name="attr_religious_path" /></td></tr>
<tr><td>Spiritual Influence</td><td><input type="text" name="attr_spiritual_influence" /></td></tr>
<tr><td>Animal Spirit</td><td><input type="text" name="attr_animal_spirit" /></td></tr>
<tr><td>Soul Points</td><td><input type="text" name="attr_soul_points" /></td></tr>
<tr><td>gods</td></tr>
</table>
<fieldset class="repeating_gods">
<table style="width:100%">
<td><input type="text" name="attr_god" /></td>
<td><input type="text" class="sheet-short" name="attr_god_number" /></td></tr>
</table>
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Astrological Sign</h3>
<table style="width:100%">
<tr><td>Fate</td><td><input type="text" name="attr_fate" /></td></tr>
</table>
<hr/>
<h3 style="margin-bottom: 10px;">Reputation</h3>
<table style="width:100%">
<tr><td>Title</td><td><input type="text" name="attr_reputation_title" /></td></tr>
<tr><td>% chance known</td><td><input type="text" name="attr_reputation_percentage_chance_known" /></td></tr>
<tr><td>Total Reputation Points</td><td><input type="text" name="attr_total_rep_points" /></td></tr>
</table>
<h3 style="margin-bottom: 10px;">Reputation Log</h3>
<fieldset class="repeating_reputation-log">
<input type="text" name="attr_reputation_log" />
</fieldset>
<h3 style="margin-bottom: 10px;">Reputation Locations</h3>
<fieldset class="repeating_reputation-locations">
<table style="width:100%">
<tr><th>Name</th><th>Points</th></tr>
<tr><td><input type="text" name="attr_reputation_location_name" /></td>
<td><input type="text" class="sheet-short" name="attr_reputation_location_points" /></td></tr>
</table>
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Character Background</h3>
<fieldset class="repeating_character-background">
<input type="text" name="attr_character_background" />
</fieldset>
</div>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Vessel and Transport</h3>
<fieldset class="repeating_vessel-and-transport">
<input type="text" name="attr_vessel_and_transport" />
</fieldset>
<hr/>
<h3 style="margin-bottom: 10px;">Creature Transport</h3>
<fieldset class="repeating_creature-transport">
<input type="text" name="attr_creature_transport" />
</fieldset>
</div>
<div class="sheet-col">
<hr/>
<h3 style="margin-bottom: 10px;">Characters Known</h3>
<fieldset class="repeating_characters-known">
<table style="width:100%">
<tr><th>Name</th><th>Rank</th></tr>
<td><input type="text" name="attr_characters_known_name" /></td>
<td><input type="text" class="sheet-short" name="attr_characters_known_level" /></td></tr>
</table>
</fieldset>
<hr/>
<h3 style="text-align: center;">Physical Condition Gauge</h3>
<table style="width:100%">
<tr><td><input type='radio' value='restored' name='attr_physical_condition' checked='true' /></td><td>Restored</td><td>-0%</td><td>-0</td></tr>
<tr><td><input type='radio' value='tired' name='attr_physical_condition' /></td><td>Tired</td><td>-10%</td><td>-0</td></tr>
<tr><td><input type='radio' value='weary' name='attr_physical_condition' /></td><td>Weary</td><td>-25%</td><td>-1</td></tr>
<tr><td><input type='radio' value='fatigued' name='attr_physical_condition' /></td><td>Fatigued</td><td>-50%</td><td>-2</td></tr>
<tr><td><input type='radio' value='exhausted' name='attr_physical_condition' /></td><td>Exhausted</td><td>-75%</td><td>-3</td></tr>
<tr><td><input type='radio' value='overexhausted' name='attr_physical_condition' /></td><td>Over Exhausted</td><td>-90%</td><td>-4</td></tr>
<tr><td><input type='radio' value='critical' name='attr_physical_condition' /></td><td>Critical</td><td>-100%</td><td>-5</td></tr>
</table>
<hr/>
<h3 style="text-align: center;">Mental Condition Gauge</h3>
<table style="width:100%">
<tr><td><input type='radio' value='collected' name='attr_mental_condition' checked='true' /></td><td>Collected</td><td>-0%</td><td>-0</td></tr>
<tr><td><input type='radio' value='agitated' name='attr_mental_condition' /></td><td>Agitated</td><td>-10%</td><td>-0</td></tr>
<tr><td><input type='radio' value='distraught' name='attr_mental_condition' /></td><td>Distraught</td><td>-25%</td><td>-1</td></tr>
<tr><td><input type='radio' value='irrational' name='attr_mental_condition' /></td><td>Irrational</td><td>-50%</td><td>-2</td></tr>
<tr><td><input type='radio' value='unstable' name='attr_mental_condition' /></td><td>Unstable</td><td>-75%</td><td>-3</td></tr>
<tr><td><input type='radio' value='maniacal' name='attr_mental_condition' /></td><td>Maniacal</td><td>-90%</td><td>-4</td></tr>
<tr><td><input type='radio' value='senseless' name='attr_mental_condition' /></td><td>Senseless</td><td>-100%</td><td>-5</td></tr>
</table>
<hr/>
</div>
</div>
<!-- This is for page 4 when we figure this shit out -->
<div class="sheet-row">
<hr/>
<h3 style="margin-bottom: 10px;">Spell Book</h3>
<fieldset class="repeating_spells">
<table style="width:100%">
<tr><th>Spell</th><th>Area</th><th>Actions</th><th>DMG</th><th>Duration</th><th>Protect</th><th>Drain</th><th>+ to hit</th></tr>
<tr><td><input type="text" name="attr_spell" /></td>
<td><input type="text" class="sheet-short" name="attr_spell_area" /></td>
<td><input type="text" class="sheet-short" name="attr_spell_actions" /></td>
<td><input type="text" class="sheet-short" name="attr_spell_damage" /><button type='roll' name='roll_spell_damage' value=' &{template:default} {{name=Spell Damage}} {{Spell=@{spell}}} {{Damage Roll = [[@{spell_damage}]]}} '>Base <button type='roll' name='roll_spell_damage' value=' &{template:default} {{name=Multiplied Spell Damage}} {{Spell = @{spell}}} {{Multiplier = ?{Multiplier?}}}{{Damage Roll = [[(@{spell_damage})*?{Multiplier?}]]}}'>Mult</td>
<td><input type="text" class="sheet-short" name="attr_spell_duration" /></td>
<td><input type="text" class="sheet-short" name="attr_spell_protect" /></td>
<td><input type="text" class="sheet-short" name="attr_spell_Drain" /></td>
<td><input type="text" class="sheet-short" name="attr_spell_plus_to_hit" /><button type='roll' name='roll_spell_hit' value=' &{template:default} {{name=Spell Attack}} {{Spell=@{spell}}} {{Spell Attack Roll = [[d20+@{spell_plus_to_hit}]]}} '></td></tr>
</table>
</fieldset>
<hr/>
</div>
<div class="sheet-2colrow">
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Alchemical Formulas</h3>
<fieldset class="repeating_alchemical-formula">
<input type="text" name="attr_alchemical_formula" />
</fieldset>
</div>
<div class="sheet-col">
<h3 style="margin-bottom: 10px;">Chi Abilities</h3>
<fieldset class="repeating_chi-ability">
<table style="width:100%">
<tr><th>Name</th><th>Drain</th></tr>
<td><input type="text" name="attr_chi_ability" /></td>
<td><input type="text" class="sheet-short" name="attr_chi_ability_drain" /></td></tr>
</table>
</fieldset>
</div>
</div>
</div>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

+744
View File
@@ -0,0 +1,744 @@
/* ************************************************************************************************************************************************ */
/* Colours */
/* ************************************************************************************************************************************************ */
/*
#948a54 (mid brown) - table borders, headings of older parts of the sheet
#ddd9c3 (beige) - header cells, active tab button
#b6ad7c (darker beige) - inactive tab buttons
#f6f5ef (pale beige) - input control backgrounds
#e0e0e0 (light grey) - read-only cell background
#c4bc96 (slightly darker beige) - tab button borders
*/
/* ************************************************************************************************************************************************ */
/* Whole Sheet */
/* ************************************************************************************************************************************************ */
.charsheet {
background: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Demon%20Gate/Paper.jpg");
}
/* ************************************************************************************************************************************************ */
/* Tab buttons */
/* ************************************************************************************************************************************************ */
input.sheet-tab,
span.sheet-tab {
margin-top: 10px;
}
.sheet-demon-gate-charsheet input.sheet-tab {
width: 94px;
height: 32px;
cursor: pointer;
position: relative;
opacity: 0;
z-index: 9999;
margin-left: 10px;
}
span.sheet-tab {
text-align: center;
display: inline-block;
font-size: 14px;
line-height: 28px;
color: maroon;
border: 2px solid maroon;
border-radius: 4px;
background: #b6ad7c;
width: 90px;
height: 28px;
cursor: pointer;
position: relative;
vertical-align: middle;
margin-left: -99px;
}
div[class^="sheet-section"] {
display: none;
}
input.sheet-tab1:checked~div.sheet-section-core,
input.sheet-tab2:checked~div.sheet-section-skills,
input.sheet-tab3:checked~div.sheet-section-combat,
input.sheet-tab4:checked~div.sheet-section-gear,
input.sheet-tab5:checked~div.sheet-section-mystic,
input.sheet-tab6:checked~div.sheet-section-abilities,
input.sheet-tab7:checked~div.sheet-section-reputation,
input.sheet-tab8:checked~div.sheet-section-notes,
input.sheet-tab9:checked~div.sheet-section-old-sheet {
display: block;
}
input.sheet-tab:checked+span {
background: #ddd9c3;
}
/* ************************************************************************************************************************************************ */
/* Headings */
/* ************************************************************************************************************************************************ */
h1,
h2,
h3 {
width: 100%;
text-align: center;
}
h1 {
height: 40px;
line-height: 40px;
color: #ddd9c3;
background-color: #590902;
border: 2px solid #590902;
border-radius: 4px;
font-size: 20px;
}
h2,
h3 {
color: maroon;
background-color: #ddd9c3;
font-weight: normal;
font-size: 16px;
height: 28px;
line-height: 28px;
}
h2 {
padding-top: 2px;
padding-bottom: 2px;
}
h3 {
text-align: left;
}
/* ************************************************************************************************************************************************ */
/* Expand/collapse (custom checkbox plus hiding a section)*/
/* ************************************************************************************************************************************************ */
.sheet-collapse-wrapper {
border: 2px solid #948a54;
margin-top: 20px;
}
/* Hide the browser's default checkbox */
input.sheet-expand-collapse-checkbox {
position: absolute;
opacity: 0;
cursor: pointer;
height: 18px;
}
/* Show the checkmark when checked */
input.sheet-expand-collapse-checkbox:checked~.sheet-expand-collapse-symbol:after {
display: block;
content: "⯆";
font-size: 18px;
}
/* Style the checkmark/indicator */
input.sheet-expand-collapse-checkbox~.sheet-expand-collapse-symbol:after {
display: block;
content: "⯈";
font-size: 18px;
}
input[type="checkbox"].sheet-expand-collapse-checkbox~.sheet-collapsible {
display: none;
}
input[type="checkbox"].sheet-expand-collapse-checkbox:checked~.sheet-collapsible {
display: block;
}
/* Designed to spill over on to the expand/collapse element below */
.sheet-table-header-collapse {
height: 5px;
line-height: 28px;
padding: 0;
}
.sheet-collapse-section {
background-color: #ddd9c3;
}
.sheet-collapsible table {
border: 0;
}
/* ************************************************************************************************************************************************ */
/* Flexbox columns */
/* ************************************************************************************************************************************************ */
.sheet-flex-section {
margin-top: 20px;
justify-content: space-between;
}
.sheet-flex-section,
.sheet-flex-section-centre {
margin-left: -10px;
margin-right: -10px;
display: flex;
flex-wrap: wrap;
}
.sheet-flex-section-centre {
justify-content: space-around;
}
.sheet-column-fixed {
flex-grow: 0;
margin: 10px;
}
.sheet-column-grow {
flex-grow: 1;
margin: 10px;
}
.sheet-flex-form-container {
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
}
.sheet-flex-form-grow {
flex-grow: 1;
}
.sheet-flex-form-fixed {
flex-grow: 0;
padding-left: 2px;
padding-right: 2px;
}
/* ************************************************************************************************************************************************ */
/* Tables */
/* ************************************************************************************************************************************************ */
table {
width: 100%;
border: 2px solid #948a54;
background-color: #ddd9c3;
table-layout: auto;
}
th,
td {
border: 1px solid #c4bc96;
}
th {
max-width: max-content;
white-space: nowrap;
font-size: 11px;
font-weight: bold;
color: dimgray;
padding-left: 10px;
padding-right: 10px;
}
th.sheet-small-table-header {
font-size: 0.7em;
font-weight: bold;
text-align: center;
height: 16px;
line-height: normal;
}
td.sheet-small-text,
th.sheet-small-text {
text-align: center;
height: 28px;
}
td.sheet-small-text {
font-size: 0.7em;
background-color: #f6f5ef;
}
th.sheet-small-text {
font-size: 0.8em;
font-weight: bold;
}
td.sheet-cell-numeric,
td.sheet-cell-numeric-readonly {
text-align: center;
max-width: 50px;
}
td.sheet-cell-numeric {
background-color: #f6f5ef;
}
.sheet-header-column {
width: 15em;
}
.sheet-button-cell {
text-align: center;
}
/* ************************************************************************************************************************************************ */
/* Entry controls */
/* ************************************************************************************************************************************************ */
input,
select,
textarea,
.sheet-input-like,
.sheet-input-like-no-padding {
width: 100%;
background-color: #f6f5ef;
}
.sheet-demon-gate-charsheet input[type=number],
.sheet-demon-gate-charsheet input[type=text],
.sheet-demon-gate-charsheet select {
border: 0;
border-radius: 0;
}
input[type="number"].sheet-totalfield,
input[type="text"].sheet-totalfield {
text-align: center;
font-weight: bold;
font-size: 16px;
color: dimgray;
background-color: #e0e0e0;
border: 0;
border-radius: 0;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
td input[type=number] {
min-width: 2.2em;
text-align: center;
}
.sheet-input-narrow {
width: 5em;
min-width: 5em;
max-width: 5em;
}
.sheet-read-only-field,
td.sheet-cell-numeric-readonly,
td input:read-only {
color: lightslategray;
background-color: #e0e0e0;
}
td input[type=text].sheet-text-centred {
text-align: center;
}
.sheet-demon-gate-charsheet input[type=number].sheet-numeric-wide {
text-align: center;
width: 100%;
}
.sheet-tall-control,
input.sheet-tall-control {
height: 36px;
line-height: 36px;
font-size: 16px;
}
td input[type=text].sheet-dice-field {
min-width: 7em;
text-align: center;
}
.sheet-input-like {
padding-left: 4px;
}
button.sheet-button,
button.btn {
border: 2px solid maroon;
border-radius: 4px;
color: maroon;
text-shadow: none;
}
button.btn {
background: #ddd9c3;
}
.sheet-demon-gate-charsheet button.sheet-display-text-button[type=roll]:before,
.sheet-demon-gate-charsheet button.sheet-display-text-button-small[type=roll]:before {
content: "";
}
button.sheet-display-text-button-small {
height: 20px;
}
.sheet-demon-gate-charsheet button.sheet-display-text-button-small[type=roll] {
font-size: 0.8em;
}
.sheet-demon-gate-charsheet button.sheet-display-text-button[type=roll] {
font-size: 1em;
}
/* ************************************************************************************************************************************************ */
/* Top section of first sheet */
/* ************************************************************************************************************************************************ */
.sheet-demon-gate-logo {
height: 116px;
}
.sheet-demon-gate-charsheet table td input {
height: 28px;
line-height: 28px;
margin: 0;
}
.sheet-demon-gate-charsheet table td select {
height: 36px;
line-height: 36px;
margin: 0;
}
.sheet-input-wide {
min-width: 12em;
}
.sheet-input-like-no-padding input.sheet-input-narrow {
max-width: 7.5em;
}
.sheet-demon-gate-charsheet td input.sheet-prominent-label,
.sheet-demon-gate-charsheet td input.sheet-prominent-field {
height: 56px;
}
td input.sheet-prominent-field {
font-size: 20px;
text-align: center;
}
.sheet-vertical-margin {
margin-top: 10px;
margin-bottom: 10px;
}
.sheet-vertical-margin-moderate {
margin-top: 20px;
margin-bottom: 20px;
}
input[type=number].sheet-input-split {
max-width: 40%;
min-width: 1.1em;
}
td .sheet-input-spacer {
min-width: 1.1em;
text-align: center;
}
.sheet-beauty-table-spacer-cell {
min-width: 19.5em;
}
/* ************************************************************************************************************************************************ */
/* HP, Mana etc. */
/* ************************************************************************************************************************************************ */
.sheet-column-prominent-stat {
flex-grow: 0;
width: 120px;
margin: 10px;
}
.sheet-demon-gate-charsheet td input.sheet-extra-prominent-field {
font-size: 36px;
height: 84px;
}
/* ************************************************************************************************************************************************ */
/** Physical and mental conditions, including gradient colours */
/* ************************************************************************************************************************************************ */
.sheet-physical-condition-0,
.sheet-physical-condition-1,
.sheet-physical-condition-2,
.sheet-physical-condition-3,
.sheet-physical-condition-4,
.sheet-physical-condition-5,
.sheet-physical-condition-6,
.sheet-mental-condition-0,
.sheet-mental-condition-1,
.sheet-mental-condition-2,
.sheet-mental-condition-3,
.sheet-mental-condition-4,
.sheet-mental-condition-5,
.sheet-mental-condition-6 {
width: 14%;
}
tr td.sheet-physical-condition-0,
tr td.sheet-mental-condition-0 {
background-color: white;
}
tr td.sheet-physical-condition-1 {
background-color: #ffcccc;
}
tr td.sheet-physical-condition-2 {
background-color: #ff9999;
}
tr td.sheet-physical-condition-3 {
background-color: #ff6666;
}
tr td.sheet-physical-condition-4 {
background-color: #ff3333;
}
tr td.sheet-physical-condition-5 {
background-color: #cc0000;
}
tr td.sheet-physical-condition-6 {
background-color: #800000;
}
tr td.sheet-mental-condition-1 {
background-color: #cce0ff;
}
tr td.sheet-mental-condition-2 {
background-color: #80b3ff;
}
tr td.sheet-mental-condition-3 {
background-color: #4d94ff;
}
tr td.sheet-mental-condition-4 {
background-color: #0066ff;
}
tr td.sheet-mental-condition-5 {
background-color: #0047b3;
}
tr td.sheet-mental-condition-6 {
background-color: #003380;
}
/* ************************************************************************************************************************************************ */
/* Skills tab
/* ************************************************************************************************************************************************ */
.sheet-top-margin {
margin-top: 40px;
}
.charsheet select.sheet-skilldescshort {
width: 4.2em;
margin: 0;
border: 0;
border-radius: 0;
}
.sheet-skillname {
padding-left: 10px;
padding-right: 10px;
width: 9em;
}
.sheet-skillname-input-cell {
width: 10.5em;
}
/* ************************************************************************************************************************************************ */
/* Abilities and notes tabs
/* ************************************************************************************************************************************************ */
.sheet-subsection-header,
.sheet-subsection-header-wide {
width: 100%;
height: 36px;
line-height: 36px;
color: dimgray;
background-color: #ddd9c3;
text-align: center;
font-size: 16px;
}
.sheet-subsection-header-wide {
min-width: 15em;
border: 2px solid #c4c1b2;
margin-bottom: 5px;
}
textarea.sheet-text-area-full,
textarea.sheet-text-area-large,
textarea.sheet-standalone-textarea {
box-sizing: border-box;
resize: none;
width: 100%;
margin-bottom: 0;
margin-left: 0;
margin-right: 0;
}
textarea.sheet-text-area-full {
margin-left: 0;
margin-right: 0;
border-radius: 0;
height: 150px;
}
textarea.sheet-text-area-large {
margin-top: 0;
border: 0;
border-radius: 0;
height: 300px;
}
.sheet-repeating-section {
margin-top: 10px;
margin-bottom: 10px;
background-color: #ddd9c3;
border: 2px solid #948a54;
}
/* This could probably be added to h2 (and maybe h1?) with a bit of reorg */
.sheet-spacer-top-margin {
margin-top: 20px;
}
h1.sheet-spacer-top-margin {
margin-top: 40px;
}
.sheet-standalone-textarea {
margin-top: 20px;
border: 2px solid #948a54;
border-radius: 0;
height: 150px;
}
/* TODO: This is a hack - sorting out heading spacing properly and removing it from flex sections should allow this to be removed */
.sheet-remove-margin-bottom {
margin-bottom: -10px;
}
/* ************************************************************************************************************************************************ */
/* Mysic tab
/* ************************************************************************************************************************************************ */
.sheet-religion-table {
border: 2px solid #948a54;
}
.sheet-religion-table table {
border: 0;
}
.sheet-religion-table table td {
border-right: 0;
}
.sheet-spiritual-influence-header {
border: 2px solid #948a54;
}
.sheet-spiritual-influence-wrapper {
display: flex;
flex-flow: column nowrap;
align-items: center;
}
.sheet-spiritual-influence-image {
background: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Demon%20Gate/Circle.png");
background-repeat: no-repeat;
background-size: contain;
background-position: center;
height: 271px;
width: 288px;
display: flex;
flex-flow: column nowrap;
align-items: center;
justify-content: center;
}
.sheet-spiritual-influence-image input[type=number].sheet-spiritual-influence {
width: 2.2em;
font-size: 18px;
text-align: center;
border-radius: 20px;
height: 40px;
line-height: 40px;
padding: 0;
border: 2px solid maroon;
}
textarea.sheet-spell-description,
textarea.sheet-chi-ability-description {
box-sizing: border-box;
resize: none;
width: 100%;
min-width: 30em;
margin: 0;
}
textarea.sheet-spell-description {
height: 120px;
}
textarea.sheet-chi-ability-description {
height: 105px;
}
th.sheet-cell-moderate-width {
width: 10em;
}
th.sheet-cell-narrow {
width: 4em;
}
tr.sheet-spell-padding-row {
height: 36px;
}
tr.sheet-spell-spacer-row {
height: 4px;
}
tr.sheet-spell-spacer-row td {
background-color: #948a54;
}
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 754 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

+1 -1
View File
@@ -1 +1 @@
This is a roll20 character sheet for Demon Gate by Arcanum Syndicate.
Roll20 character sheet for Demon Gate by [Arcanum Syndicate](http://arcanumsyndicate.com/demon-gate).
+7 -7
View File
@@ -1,9 +1,9 @@
{
"html": "Demon Gate.html",
"css": "Demon Gate.css",
"authors": "Mike Wenditz, Brandon Williams, Arcanum Syndicate",
"roll20userid": "2056835,2908748",
"preview": "Demon Gate.png",
"instructions": "**Demon Gate**\n\n Dice fields need to include ! if you want maximum continuency.",
"legacy": true
"html": "DemonGate.html",
"css": "DemonGate.css",
"authors": "Todd Bauman, Brandon Williams, Peter Haldenby, Arcanum Syndicate",
"roll20userid": "668591,2908748,230826",
"preview": "DemonGate.png",
"instructions": "**Demon Gate**\n\n Character sheet for Demon Gate.",
"legacy": false
}
+80 -21
View File
@@ -1,4 +1,5 @@
.sheet-wrapper {width:1024px; min-width: 1024px;
/* character sheet version 1.2 | decreasing width/min-width to 900 px*/
.sheet-wrapper {width:900px; min-width: 900px;
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/EtherealWinds-playtest/bg.jpg");
background-repeat: no-repeat; background-size: contain; padding: 3em 1.5em 2em 1em; font-size:16px;}
.sheet-wrapper h2 {text-transform: uppercase; letter-spacing: -0.04em; text-decoration: underline;}
@@ -7,7 +8,7 @@
.sheet-last:after {content:""; display: table; height: 0; width:100%; clear:both;}
.sheet-wrapper div {display: block; font-family: sans-serif; font-size:14px;}
.sheet-wrapper h1 {line-height: 1; margin:0; margin-top:0.1em; letter-spacing: -0.04em;}
.sheet-wrapper p {margin:0; /*background-color: white;*/ padding: 0.3em 0.8em 0.3em 0.7em; border-radius: 1em; border:0.15em solid black;
.sheet-wrapper p {margin:0; padding: 0.3em 0.8em 0.3em 0.7em; border-radius: 1em; border:0.15em solid black;
background-color: #15567F; color:white;
}
.sheet-wrapper p.sheet-simple {color:black; border:none; background:none;}
@@ -23,7 +24,7 @@
.sheet-strain-track {width:100%;}
.sheet-selector {width:20%; float:left;}
.sheet-wrapper .sheet-dietypes {position:absolute; width:47%; left:27%; top:56em; border-radius: 2em; padding:1em 0.5em 1em 1em; border:outset 0.2em black; background-color: black;}
.sheet-dietypes h2 {font-size: 1.6em; text-decoration: none; color:white;}
.sheet-dietypes h2 {font-size: 1.4em; text-decoration: none; color:white;}
.sheet-dietypes h2 label { font-size: 0.6em; color:white;}
.sheet-wrapper input[type=checkbox] {width:14%; height:1.6em; margin:0; padding:0; position: relative; top:0.3em;}
@@ -59,33 +60,33 @@
.sheet-numbers {width:60%; float: left; position: relative;}
.sheet-numbers h3 {text-transform: uppercase; letter-spacing: -0.024em; margin:0.2em 0 0.1em 0;}
.sheet-block {text-align: center; width:16%; float:left; position: relative; z-index: 2;}
.sheet-block1 {transform:rotateZ(-30deg); margin-left:20%;}
.sheet-block2 {transform:rotateZ(30deg); float:right; margin-right:20%; margin-bottom:4em;}
.sheet-block6 {transform: rotateZ(-90deg); clear: both; margin-left:5%;}
.sheet-block3 {transform:rotateZ(90deg); float:right; margin-right:5%; margin-bottom:4em;}
.sheet-block5 {transform: rotateZ(30deg); clear: both; float:left; margin-left:20%;}
.sheet-block4 {transform: rotateZ(-30deg); float:right; margin-right:20%;}
/* version 1.2 alpha | moving things around slightly to fit the decreased width */
.sheet-block1 {transform:rotateZ(-30deg); margin-left:23%;}
.sheet-block2 {transform:rotateZ(30deg); float:right; margin-right:23%; margin-bottom:4em;}
.sheet-block6 {transform: rotateZ(-90deg); clear: both; margin-left:5%; top:-1em;}
.sheet-block3 {transform:rotateZ(90deg); float:right; margin-right:5%; margin-bottom:4em; top:-1em;}
.sheet-block5 {transform: rotateZ(30deg); clear: both; float:left; margin-left:23%; top:-2em;}
.sheet-block4 {transform: rotateZ(-30deg); float:right; margin-right:23%; top:-2em;}
.sheet-hexes {position: absolute; width:100%; height:100%; z-index: 1;}
.sheet-stat-hex {position:absolute;
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/EtherealWinds-playtest/hex-orange.png"); min-width:82px; min-height:72px; background-repeat: no-repeat; background-size: contain;}
.sheet-bluehex .sheet-stat-hex {background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/EtherealWinds-playtest/hex-blue.png");}
.sheet-hex1 {left:43.5%; top:20%;}
.sheet-hex6 {left:28%; top:31%;}
.sheet-hex2 {right:27%; top:31%;}
.sheet-hex5 {left:28%; bottom:31%;}
.sheet-hex3 {right:27%; bottom:31%;}
.sheet-hex4 {left:43.5%; bottom:20%;}
/* version 1.2 alpha | moving things around slightly to fit with the decreased width */
.sheet-hex1 {left:42.5%; top:20%;}
.sheet-hex6 {left:27%; top:30%;}
.sheet-hex2 {right:25%; top:30%;}
.sheet-hex5 {left:27%; bottom:35%;}
.sheet-hex3 {right:25%; bottom:35%;}
.sheet-hex4 {left:42.5%; bottom:25%;}
.sheet-exp {margin-top: 2em; float:left; width:20%;}
.sheet-exp p {clear: both;}
.sheet-effort-track {float:left; width:20%; text-align: left;}
/*.sheet-effort-track h2 {text-transform: uppercase; letter-spacing: -0.04em; text-decoration: underline;}*/
.sheet-strain-track span {color:crimson; text-shadow: 0 0 0.2em black; font-weight: bold;font-size: 1.2em; position: relative; top:0.07em;}
.sheet-derived-stats {float:left; width:60%; position:relative;}
.sheet-derived-stats:after {content:""; display: table; height: 0; width:100%; clear:both;}
.sheet-derived-stats img {width:100%; height:auto;}
.sheet-derived-stats h2, .sheet-tints h2 {
clear: both; padding-left: 7%; padding-top: 1.2em;
/*text-transform: uppercase; text-decoration: underline; letter-spacing: -0.04em;*/
}
.sheet-health, .sheet-mana {width:24%; float:left; position: relative; text-align: center; height:auto; box-sizing: border-box;}
.sheet-health {margin-left: 16%;}
@@ -102,10 +103,11 @@
.sheet-selector select {width:7em;}
.sheet-combo {display:block;}
.sheet-wrapper .sheet-hexes input.sheet-switch {position: absolute; top:-12%; left:80%; text-align: center; z-index: 5;}
.sheet-hexes label { font-size: 1.2em; position:absolute; top:-12.5%; left:91%; text-transform: uppercase; font-weight: bold; color:white;
/* version 1.2 alpha | correcting the position of the hex-switching checkbox and label */
.sheet-wrapper .sheet-hexes input.sheet-switch {position: absolute; top:-4%; left:80%; text-align: center; z-index: 5;}
.sheet-hexes label { font-size: 1em; position:absolute; top:-4.5%; left:91%; text-transform: uppercase; font-weight: bold; color:white;
background-color: #15567F; border-radius: 5em; padding:0.4em 0.8em; width:11em;
/*text-shadow: 0 0 0.3em #15567F;*/}
}
.sheet-orangehex {display: block;}
.sheet-bluehex {display: none;}
@@ -113,7 +115,6 @@
.sheet-switch:not(:checked) ~ .sheet-bluehex, .sheet-switch:checked ~ .sheet-orangehex { display: none; }
.sheet-dietypes div {width:auto; float: left;}
/* .sheet-dietypes div:nth-child(3) {clear: both;}*/
.sheet-wrapper .sheet-dietypes input[type=radio] {width:2em;}
.sheet-dietypes label {width:2.2em; display:inline; padding-left:0.2em;}
@@ -123,6 +124,64 @@
.sheet-wrapper .sheet-conditions {position: absolute; bottom:1.6em; right:5.6em; font-size: 64%; border-top: 0.16em solid black;}
.sheet-wrapper .sheet-conditions label {font-size: 1.8em; position: relative; top: 0.2em;}
/* character sheet version 1.2 | styling the new sections: bonus field, custom rolls, dropdown text color changing */
.sheet-customrolls {width:100%; clear: both;}
.charsheet .sheet-wrapper .sheet-customrolls p {color:#15567F; background-color: rgba(255,255,255,0); border: solid 0.2em #15567F; border-radius: 0.2em; margin-top:0.65em; margin-bottom: 0.35em;}
.sheet-bonustoroll input {font-size: 20px;}
span.sheet-highlighted {
color:rgba(255,255,255,0.5); font-size: 80px; line-height:0.6em;
user-select: none;
display: block;
position: absolute; font-weight: 100; z-index: 6;
}
/* the top selector */
.sheet-colorswitch1[value="Physical"] ~ .sheet-selectedcolor1 {color: #8F5A3D; border:solid 0.2em #8F5A3D;}
.sheet-colorswitch1[value="Mental"] ~ .sheet-selectedcolor1 {color: #288f8b; border: solid 0.2em #288f8b;}
.sheet-colorswitch1[value="Ethereal"] ~ .sheet-selectedcolor1 {color: #662f90; border: solid 0.2em #662f90;}
.sheet-colorswitch1[value="Physical"] ~ .sheet-descriptor {background-color: rgba(143,90,61,0.8); color:white;}
.sheet-colorswitch1[value="Mental"] ~ .sheet-descriptor {background-color: rgba(40,143,139,0.8); color:white;}
.sheet-colorswitch1[value="Ethereal"] ~ .sheet-descriptor {background-color: rgba(102,47,144,0.8); color:white;}
.sheet-colorswitch1[value="Physical"] ~ span.sheet-highlighted.sheet-hl6 {color: #8F5A3D;}
.sheet-colorswitch1[value="Physical"] ~ span.sheet-highlighted.sheet-hl1 {color: #8F5A3D;}
.sheet-colorswitch1[value="Mental"] ~ span.sheet-highlighted.sheet-hl6 {color: #288f8b;}
.sheet-colorswitch1[value="Mental"] ~ span.sheet-highlighted.sheet-hl1 {color: #288f8b;}
.sheet-colorswitch1[value="Ethereal"] ~ span.sheet-highlighted.sheet-hl6 {color: #662f90;}
.sheet-colorswitch1[value="Ethereal"] ~ span.sheet-highlighted.sheet-hl1 {color: #662f90;}
/* the middle selector */
.sheet-colorswitch2[value="Physical"] ~ .sheet-selectedcolor2 {color: #8F5A3D; border: solid 0.2em #8F5A3D;}
.sheet-colorswitch2[value="Mental"] ~ .sheet-selectedcolor2 {color: #288f8b; border: solid 0.2em #288f8b;}
.sheet-colorswitch2[value="Ethereal"] ~ .sheet-selectedcolor2 {color: #662f90; border: solid 0.2em ;}
.sheet-colorswitch2[value="Physical"] ~ .sheet-descriptor {background-color: rgba(143,90,61,0.8); color:white;}
.sheet-colorswitch2[value="Mental"] ~ .sheet-descriptor {background-color: rgba(40,143,139,0.8); color:white;}
.sheet-colorswitch2[value="Ethereal"] ~ .sheet-descriptor {background-color: rgba(102,47,144,0.8); color:white;}
.sheet-colorswitch2[value="Physical"] ~ span.sheet-highlighted.sheet-hl2 {color: #8F5A3D;}
.sheet-colorswitch2[value="Physical"] ~ span.sheet-highlighted.sheet-hl3 {color: #8F5A3D;}
.sheet-colorswitch2[value="Mental"] ~ span.sheet-highlighted.sheet-hl2 {color: #288f8b;}
.sheet-colorswitch2[value="Mental"] ~ span.sheet-highlighted.sheet-hl3 {color: #288f8b;}
.sheet-colorswitch2[value="Ethereal"] ~ span.sheet-highlighted.sheet-hl2 {color: #662f90;}
.sheet-colorswitch2[value="Ethereal"] ~ span.sheet-highlighted.sheet-hl3 {color: #662f90;}
/* the bottom selector */
.sheet-colorswitch3[value="Physical"] ~ .sheet-selectedcolor3 {color: #8F5A3D; border: solid 0.2em #8F5A3D;}
.sheet-colorswitch3[value="Mental"] ~ .sheet-selectedcolor3 {color: #288f8b; border: solid 0.2em #288f8b;}
.sheet-colorswitch3[value="Ethereal"] ~ .sheet-selectedcolor3 {color: #662f90; border: solid 0.2em #662f90;}
.sheet-colorswitch3[value="Physical"] ~ .sheet-descriptor {background-color: rgba(143,90,61,0.8); color:white;}
.sheet-colorswitch3[value="Mental"] ~ .sheet-descriptor {background-color: rgba(40,143,139,0.8); color:white;}
.sheet-colorswitch3[value="Ethereal"] ~ .sheet-descriptor {background-color: rgba(102,47,144,0.8); color:white;}
.sheet-colorswitch3[value="Physical"] ~ span.sheet-highlighted.sheet-hl4 {color: #8F5A3D;}
.sheet-colorswitch3[value="Physical"] ~ span.sheet-highlighted.sheet-hl5 {color: #8F5A3D;}
.sheet-colorswitch3[value="Mental"] ~ span.sheet-highlighted.sheet-hl4 {color: #288f8b;}
.sheet-colorswitch3[value="Mental"] ~ span.sheet-highlighted.sheet-hl5 {color: #288f8b;}
.sheet-colorswitch3[value="Ethereal"] ~ span.sheet-highlighted.sheet-hl4 {color: #662f90;}
.sheet-colorswitch3[value="Ethereal"] ~ span.sheet-highlighted.sheet-hl5 {color: #662f90;}
.sheet-hl1 {top:477px; left:453px;}
.sheet-hl2 {top:528px; left:537px;}
.sheet-hl3 {top:629px; left:537px;}
.sheet-hl4 {top:680px; left:453px;}
.sheet-hl5 {top:630px; left:370px;}
.sheet-hl6 {top:528px; left:369px;}
/* Custom Template from Jakob */
/* Smaller margins - remove these if you want the huge default left margin */
.sheet-rolltemplate-custom {
+45 -17
View File
@@ -111,56 +111,70 @@
<div class="combo">
<div>
<input type="hidden" name="attr_bluetop" value="Sorrow / Compassion:">
<!-- version 1.2 alpha | hidden attributes that enable color switching -->
<input name="attr_allocatetop" type="hidden" class="colorswitch1">
<input class="descriptor" name="attr_bluetopshow" type="text" disabled="true" value="@{bluetop}">
<select name="attr_allocatetop">
<select name="attr_allocatetop" class="selectedcolor1">
<option value="unallocated" checked="true">&mdash;</option>
<option value="Ethereal">Ethereal</option>
<option value="Mental">Mental</option>
<option value="Physical">Physical</option>
</select>
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=@{allocatetop}}} {{Check=[[floor(({@{diepoolfirst}}k5+@{conditional}+floor(@{penalty}))/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})]] penalty.}}" name="roll_checkfirst">Roll</button>
<span class="highlighted hl6">&xcirc;</span>
<span class="highlighted hl1">&xcirc;</span>
<!-- version 1.2 alpha | updated roll formulas to include bonus attribute -->
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=@{allocatetop}}} {{Check=[[floor(({@{diepoolfirst}}k5+@{conditional}+floor(@{penalty})+@{bonus})/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})+@{bonus}]] modifier.}}" name="roll_checkfirst">Roll</button>
</div>
<div>
<input type="hidden" name="attr_blueright" value="Joy / Anger:">
<input name="attr_allocateright" type="hidden" class="colorswitch2">
<input class="descriptor" name="attr_bluerightshow" type="text" disabled="true" value="@{blueright}">
<select name="attr_allocateright">
<select name="attr_allocateright" class="selectedcolor2">
<option value="unallocated" checked="true">&mdash;</option>
<option value="Ethereal">Ethereal</option>
<option value="Mental">Mental</option>
<option value="Physical">Physical</option>
</select>
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=@{allocateright}}} {{Check=[[floor(({@{diepoolsecond}}k5+@{conditional}+floor(@{penalty}))/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})]] penalty.}}" name="roll_checksecond">Roll</button>
<span class="highlighted hl2">&xcirc;</span>
<span class="highlighted hl3">&xcirc;</span>
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=@{allocateright}}} {{Check=[[floor(({@{diepoolsecond}}k5+@{conditional}+floor(@{penalty})+@{bonus})/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})+@{bonus}]] modifier.}}" name="roll_checksecond">Roll</button>
</div>
<div>
<input type="hidden" name="attr_blueleft" value="Fear / Confusion:">
<input name="attr_allocateleft" type="hidden" class="colorswitch3">
<input class="descriptor" name="attr_blueleftshow" type="text" disabled="true" value="@{blueleft}">
<select name="attr_allocateleft">
<select name="attr_allocateleft" class="selectedcolor3">
<option value="unallocated" checked="true">&mdash;</option>
<option value="Ethereal">Ethereal</option>
<option value="Mental">Mental</option>
<option value="Physical">Physical</option>
</select>
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=@{allocateleft}}} {{Roll=[[floor(({@{diepoolthird}}k5+@{conditional}+floor(@{penalty}))/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})]] penalty.}}" name="roll_checkthird">Roll</button>
<span class="highlighted hl4">&xcirc;</span>
<span class="highlighted hl5">&xcirc;</span>
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=@{allocateleft}}} {{Roll=[[floor(({@{diepoolthird}}k5+@{conditional}+floor(@{penalty})+@{bonus})/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})+@{bonus}]] modifier.}}" name="roll_checkthird">Roll</button>
</div>
</div>
<div class="targetnumber"><input type="number" name="attr_tn" value="13"><label>TN</label></div>
<!-- character sheet version 1.2 | added a field for roll bonuses -->
<div class="bonustoroll"><input type="number" name="attr_bonus" value="0"><label>Bonus</label></div>
</div>
<div class="effort-track">
<h2>Effort Remaining</h2>
<div><input type="radio" name="attr_effort" value="10"><p class="label inline">&ndash; 10</p></div>
<div><input type="radio" name="attr_effort" value="9"><p class="label inline">&ndash; 9</p></div>
<div><input type="radio" name="attr_effort" value="8"><p class="label inline">&ndash; 8</p></div>
<div><input type="radio" name="attr_effort" value="7"><p class="label inline">&ndash; 7</p></div>
<div><input type="radio" name="attr_effort" value="6"><p class="label inline">&ndash; 6</p></div>
<div><input type="radio" name="attr_effort" value="5"><p class="label inline">&ndash; 5</p></div>
<div><input type="radio" name="attr_effort" value="4"><p class="label inline">&ndash; 4</p></div>
<div><input type="radio" name="attr_effort" value="3"><p class="label inline">&ndash; 3</p></div>
<div><input type="radio" name="attr_effort" value="2"><p class="label inline">&ndash; 2</p></div>
<div><input type="radio" name="attr_effort" value="1"><p class="label inline">&ndash; 1</p></div>
<!-- removing dashes in front of numbers -->
<div><input type="radio" name="attr_effort" value="10"><p class="label inline"> 10</p></div>
<div><input type="radio" name="attr_effort" value="9"><p class="label inline"> 9</p></div>
<div><input type="radio" name="attr_effort" value="8"><p class="label inline"> 8</p></div>
<div><input type="radio" name="attr_effort" value="7"><p class="label inline"> 7</p></div>
<div><input type="radio" name="attr_effort" value="6"><p class="label inline"> 6</p></div>
<div><input type="radio" name="attr_effort" value="5"><p class="label inline"> 5</p></div>
<div><input type="radio" name="attr_effort" value="4"><p class="label inline"> 4</p></div>
<div><input type="radio" name="attr_effort" value="3"><p class="label inline"> 3</p></div>
<div><input type="radio" name="attr_effort" value="2"><p class="label inline"> 2</p></div>
<div><input type="radio" name="attr_effort" value="1"><p class="label inline"> 1</p></div>
<div class="single">
<input type="radio" name="attr_effort" value="0"><p class="label inline">&ndash; 0</p>
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=Effort}} {{Roll=[[floor(({@{diepooleffort}}k5+@{conditional}+floor(@{penalty}))/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})]] penalty.}}" name="roll_checkeffort">Roll Effort</button>
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=Effort}} {{Roll=[[floor(({@{diepooleffort}}k5+@{conditional}+floor(@{penalty})+@{bonus})/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})+@{bonus}]] modifier.}}" name="roll_checkeffort">Roll Effort</button>
</div>
<input type="hidden" name="attr_diepooleffort" value="0">
</div>
@@ -229,7 +243,21 @@
<h2>Miscellaneous Notes</h2>
<textarea name="attr_miscnotes"></textarea>
</div>
<!-- adding repeatable section for custom rolls -->
<div class="customrolls">
<h2>Custom Rolls</h2>
<p>Roll penalties and bonuses are applied automatically; <strong>RD</strong>, <strong>DD</strong>, and <strong>type of die</strong> are not.<br>
You can drop the lowest rolling dice by adding "dl" and the number of dice to remove. Alternately you can add "k" followed by however many dice you want to keep.</p>
<p>If rolling multiple types of dice and need to drop some, place them inside curly brackets. Example: <strong>{2d6+3d8}k4</strong>.</p>
<hr>
<fieldset class="repeating_custom">
<label>Name: </label><input type="text" name="attr_customrollname">
<label>Formula: </label><input type="text" name="attr_customdice" value="4d6dl1">
<button type="roll" value="&{template:custom} {{color=green}} {{title=@{character_name}}} {{subtitle=@{customrollname}}} {{Check=[[floor((@{customdice}+@{conditional}+floor(@{penalty})+@{bonus})/@{tn})]] success(es).}} {{Notes=Check made with a [[floor(@{penalty})+@{bonus}]] modifier.}}" name="roll_checkfirst">Roll</button>
<hr>
</fieldset>
</div>
<div class="last">&nbsp;</div>
</div>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 106 KiB

+1 -1
View File
@@ -4,6 +4,6 @@
"authors": "OoznynKoo",
"roll20userid": "84402",
"preview": "preview.jpg",
"instructions": "Character Sheet for Ethereal Winds playtest v1.1 alpha. [The rules document is available here](https://drive.google.com/file/d/15v0GmOZsuxSQctrFcjAnnDoK3O79AzRj)",
"instructions": "Ethereal Winds is a new tabletop RPG currently in its first playtesting phase. The supplied Character Sheet is compatible with version 1.2 alpha of the game. [The rules document is available here](https://drive.google.com/file/d/1JFNTdGnHo7MDxBu-ujItlcg2tsFDkNAf/view?usp=sharing). Contact the author via [email](mailto:ooznynkoo@gmail.com)",
"legacy": true
}
+55 -55
View File
@@ -728,17 +728,17 @@
<input type="number" class="sheet-number" name="attr_underarmor_successful_hits-max" value="0" />
<input type="text" class="sheet-text_damage" value="Condition" readonly style="width:18%"/>
<select class ="sheet-select" name="attr_weapon_condition-1" value="0" style="width:12%">
<option value=""></option>
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
<option value="">7</option>
<option value="">8</option>
<option value="">9</option>
<option value="">10</option>
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div>
<input type="text" class="sheet-text_damage" value="AS SH" readonly style="width:15%"/>
@@ -748,17 +748,17 @@
<input type="number" class="sheet-number" name="attr_armor_successful_hits-max" value="0" />
<input type="text" class="sheet-text_damage" value="Condition" readonly style="width:18%"/>
<select class ="sheet-select" name="attr_weapon_condition-1" value="0" style="width:12%">
<option value=""></option>
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
<option value="">7</option>
<option value="">8</option>
<option value="">9</option>
<option value="">10</option>
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<div>
<input type="text" class="sheet-text_damage" value="PA SH" readonly style="width:15%"/>
@@ -768,17 +768,17 @@
<input type="number" class="sheet-number" name="attr_power_armor_successful_hits-max" value="0" />
<input type="text" class="sheet-text_damage" value="Condition" readonly style="width:18%"/>
<select class ="sheet-select" name="attr_weapon_condition-1" value="0" style="width:12%">
<option value=""></option>
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
<option value="">7</option>
<option value="">8</option>
<option value="">9</option>
<option value="">10</option>
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<div>
<textarea style="width:90%" name="attr_armor_note" placeholder="Armor Notes"></textarea>
@@ -867,17 +867,17 @@
<input type="text" class="sheet-text_damage" value="Condition" readonly style="width:9%"/>
<select class ="sheet-select" name="attr_weapon_condition-1" value="0" style="width:6%">
<option value=""></option>
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
<option value="">7</option>
<option value="">8</option>
<option value="">9</option>
<option value="">10</option>
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<input type="text" class="sheet-text_damage" value="Equipped" readonly style="width:8%"/>
@@ -955,17 +955,17 @@
<input type="text" class="sheet-text_damage" value="Condition" readonly style="width:10%"/>
<select class ="sheet-select" name="attr_weapon_condition_2" value="0" style="width:6%">
<option value=""></option>
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
<option value="">7</option>
<option value="">8</option>
<option value="">9</option>
<option value="attr_broken=1">10</option>
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<input type="text" class="sheet-text_damage" value="Equipped" readonly style="width:8%"/>
+3 -3
View File
@@ -97,7 +97,7 @@
"notes": "Anotações",
"Notice": "Percepção",
"Other Aspect": "Outro Aspecto",
"Other": "Other",
"Other": "Outro",
"Persuade": "Persuadir",
"physical": "Físico",
"Physique": "Vigor",
@@ -343,8 +343,8 @@
"Plant Form": "Plant Form",
"Animal Form": "Animal Form",
"Human Form": "Human Form",
"Bond": "Bond",
"Free": "Free",
"Bond": "Vínculo",
"Free": "Gratuito",
"Rocketeer": "Rocketeer",
"Swordplay": "Swordplay",
"Family": "Family",
+3 -3
View File
@@ -4722,9 +4722,9 @@
"dev": true
},
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
"dev": true
},
"yallist": {
+147 -119
View File
@@ -1,87 +1,64 @@
@import url('https://fonts.googleapis.com/css?family=Federant|Piedra|Volkhov:ital@1&display=swap');
/*this hides the contents of each tab by default*/
.charsheet div[class^="sheet-section"] {
display: none;
/*Configure the tab buttons*/
.sheet-main,
.sheet-stats,
.sheet-abilities,
.sheet-equipment,
.sheet-mu,
.sheet-cleric,
.sheet-thief,
.sheet-ep,
.sheet-death,
.sheet-combat {
display: none;
}
/*this shows the tab content when the appropriate input field is selected*/
input.sheet-tab1:checked ~ div.sheet-section-basic,
input.sheet-tab2:checked ~ div.sheet-section-stats,
input.sheet-tab3:checked ~ div.sheet-section-combat,
input.sheet-tab4:checked ~ div.sheet-section-abilities,
input.sheet-tab5:checked ~ div.sheet-section-equipment,
input.sheet-tab6:checked ~ div.sheet-section-mu,
input.sheet-tab7:checked ~ div.sheet-section-cleric,
input.sheet-tab8:checked ~ div.sheet-section-thief,
input.sheet-tab9:checked ~ div.sheet-section-ep,
input.sheet-tab10:checked ~ div.sheet-section-death
{
display: block;
/* show the selected tab */
.sheet-tabstoggle[value="main"]~div.sheet-main,
.sheet-tabstoggle[value="stats"]~div.sheet-stats,
.sheet-tabstoggle[value="abilities"]~div.sheet-abilities,
.sheet-tabstoggle[value="equipment"]~div.sheet-equipment,
.sheet-tabstoggle[value="mu"]~div.sheet-mu,
.sheet-tabstoggle[value="cleric"]~div.sheet-cleric,
.sheet-tabstoggle[value="thief"]~div.sheet-thief,
.sheet-tabstoggle[value="ep"]~div.sheet-ep,
.sheet-tabstoggle[value="death"]~div.sheet-death,
.sheet-tabstoggle[value="combat"]~div.sheet-combat {
display: block;
}
.charsheet input.sheet-tab {
width: 60px;
height: 25px;
cursor: pointer;
position: relative;
opacity: 0;
z-index: 9999;
}
/*this styles the span with the tab information and slides to the left, so it appears underneath the radio button*/
.charsheet span.sheet-tab {
text-align: center;
display: inline-block;
font-size: 11px;
background: white;
border-style: solid;
border-width: 1px;
border-color: black;
font-style: normal;
border-radius: 16px 16px 0px 0px;
width: 60px;
height: 25px;
cursor: pointer;
position: relative;
vertical-align: middle;
margin-left: -61px;
line-height: 25px;
}
.charsheet span.sheet-tab {
text-align: center;
display: inline-block;
}
/*this modifies the span color once the radio button is selected so you know which tab is selected*/
input.sheet-tab1:checked + span.sheet-tab1,
input.sheet-tab2:checked + span.sheet-tab2,
input.sheet-tab3:checked + span.sheet-tab3,
input.sheet-tab4:checked + span.sheet-tab4,
input.sheet-tab5:checked + span.sheet-tab5,
input.sheet-tab6:checked + span.sheet-tab6,
input.sheet-tab7:checked + span.sheet-tab7,
input.sheet-tab8:checked + span.sheet-tab8,
input.sheet-tab9:checked + span.sheet-tab9,
input.sheet-tab10:checked + span.sheet-tab10
{
button[class*="tabbutton"] {
background: #F3D149;
font-size: 12px;
font-weight: bold;
border-style: solid;
border-width: 1px;
border-radius: 16px 16px 0px 0px;
border-color: black black #F3D149 ;
border-width: 1px 1px 1px;
border-radius: 10px 10px 0px 0px;
border-color: black ;
outline:none;
}
.sheet-tabstoggle[value="main"] ~div button[class*="main"] ,
.sheet-tabstoggle[value="stats"] ~div button[class*="stats"],
.sheet-tabstoggle[value="abilities"] ~div button[class*="abilities"],
.sheet-tabstoggle[value="equipment"] ~div button[class*="equipment"],
.sheet-tabstoggle[value="mu"] ~div button[class*="mu"],
.sheet-tabstoggle[value="cleric"] ~div button[class*="cleric"],
.sheet-tabstoggle[value="thief"] ~div button[class*="thief"],
.sheet-tabstoggle[value="ep"] ~div button[class*="ep"],
.sheet-tabstoggle[value="death"] ~div button[class*="death"],
.sheet-tabstoggle[value="combat"] ~div button[class*="combat"] {
border-color: black black #F3D149 black;
}
/*----------- End Tab Setup -----------*/
.sheet-background {
background-color: #F3D149;
}
.sheet-background-hf
{
.sheet-background-hf {
min-height: 25px;
background-image: url('https://ARGHive.net/wp-content/uploads/2020/05/HM4E_B.png?v=1');
background-repeat: repeat-x;
@@ -89,15 +66,14 @@ input.sheet-tab10:checked + span.sheet-tab10
margin-left: 0.3in;
margin-right: 0.3in;
}
.sheet-background-left
{
.sheet-background-left {
background-image: url('https://ARGHive.net/wp-content/uploads/2020/05/HM4E_BLeft.png?v=1');
background-repeat: repeat-y;
background-size: 800px;
}
.sheet-basic
{
.sheet-basic {
margin-left: 0.3in;
}
@@ -107,20 +83,21 @@ input.sheet-tab10:checked + span.sheet-tab10
margin-bottom: 8px;
}
.sheet-three-column{
.sheet-three-column {
display: grid;
grid-column-gap: 1rem;
grid-row-gap: 0px ;
grid-row-gap: 0px;
grid-template-columns: auto auto auto;
grid-template-areas: "tcleft tccenter tcright";
grid-template-rows: repeat(auto-fill, auto-fill);
padding: 0px;
margin: 0px;
}
.sheet-four-column{
.sheet-four-column {
display: grid;
grid-column-gap: 1rem;
grid-row-gap: 0px ;
grid-row-gap: 0px;
grid-template-columns: auto auto auto auto;
grid-template-areas: "tcleft tccleft tccright tcright";
grid-template-rows: repeat(auto-fill, auto-fill);
@@ -128,19 +105,21 @@ input.sheet-tab10:checked + span.sheet-tab10
margin: 0px;
}
.sheet-spellbooks{
.sheet-spellbooks {
display: grid;
grid-column-gap: 1rem;
grid-row-gap: 0px ;
grid-row-gap: 0px;
grid-template-columns: 10% 28% 28% 30%;
grid-template-areas: "tcleft tccleft tccright tcright";
grid-template-rows: repeat(auto-fill, auto-fill);
padding: 0px;
margin: 0px;
}
.sheet-tccleft2 {
grid-column: 2 /span 2;
}
.sheet-tccright2 {
grid-column: 3 /span 2;
}
@@ -148,51 +127,67 @@ input.sheet-tab10:checked + span.sheet-tab10
.sheet-tcleft {
grid-area: tcleft;
}
.sheet-tccenter {
grid-area: tccenter;
}
.sheet-tcright {
grid-area: tcright;
}
.sheet-tccleft {
grid-area: tccleft;
}
.sheet-tccright {
grid-area: tccright;
}
.sheet-row1 {
grid-row: 1;
}
.sheet-row2 {
grid-row: 2;
}
.sheet-row3 {
grid-row: 3;
}
.sheet-row4 {
grid-row: 4;
}
.sheet-row5 {
grid-row: 5;
}
.sheet-row6 {
grid-row: 6;
}
.sheet-row7 {
grid-row: 7;
}
.sheet-row8 {
grid-row: 8;
}
.sheet-row9 {
grid-row: 9;
}
.sheet-row10 {
grid-row: 10;
}
.sheet-row11 {
grid-row: 11;
}
.sheet-row12 {
grid-row: 12;
}
@@ -200,37 +195,41 @@ input.sheet-tab10:checked + span.sheet-tab10
.sheet-titlesection {
grid-row: 1 / 4;
}
.sheet-titles {
font-family: 'Federant', cursive;
font-size: x-large;
text-align: center;
}
.sheet-subtitles {
font-family: 'Volkhov', serif;
font-style: italic;
font-size: larger;
text-align: center;
}
.sheet-indented {
margin-left: 4px;
margin-top: 7px;
}
.sheet-indented input {
background-color: #F3D149;
border: 0px;
padding: 0px;
width: 195px;
}
.sheet-inputsize {
width: 218px;
height: 30px;
}
.sheet-one-column{
.sheet-one-column {
display: grid;
grid-column-gap: 1rem;
grid-row-gap: 2px ;
grid-row-gap: 2px;
grid-template-columns: auto;
grid-template-areas: "tcleft";
grid-template-rows: repeat(auto-fill);
@@ -238,99 +237,117 @@ input.sheet-tab10:checked + span.sheet-tab10
margin: 0px;
}
.sheet-two-column{
.sheet-two-column {
display: grid;
grid-column-gap: 1rem;
grid-row-gap: 2px ;
grid-row-gap: 2px;
grid-template-columns: auto auto;
grid-template-areas: "tcleft tcright";
grid-template-rows: repeat(auto-fill, auto-fill);
padding: 0px;
margin: 0px;
}
.sheet-indented textarea {
height: 18px;
display: inline-block;
}
.sheet-fixedwidthlabel{
.sheet-fixedwidthlabel {
float: left;
width: 100px;
margin-top: 5px;
}
.sheet-fixedwidthlabelnarrow {
float: left;
width: 60px;
margin-top: 5px;
}
.sheet-fixedwidthlabelverynarrow {
float: left;
width: 30px;
margin-top: 5px;
}
.sheet-largeInput {
width: 298px;
margin-bottom: 0px;
}
.sheet-regularInput {
width: 250px;
margin-bottom: 0px;
}
.sheet-smallInput {
width: 100px;
margin-bottom: 0px;
}
.sheet-mediumPlusInput {
width: 120px;
margin-bottom: 0px;
}
.sheet-regularMinusInput {
width: 175px;
margin-bottom: 0px;
}
.sheet-mediumInput {
width: 75px;
margin-bottom: 0px;
}
.sheet-mediumInputRight {
width: 75px;
margin-bottom: 0px;
text-align: right;
}
.sheet-reallySmallInput {
width: 55px;
margin-bottom: 0px;
}
.sheet-reallySmallInputRight {
width: 55px;
margin-bottom: 0px;
text-align: right;
}
.sheet-tinyInput {
width: 32px;
margin-bottom: 0px;
text-align: right;
}
.sheet-teenyInput {
width: 9px;
margin-bottom: 0px;
text-align: right;
border: 0px;
padding: 0px;
border: 0px;
padding: 0px;
margin: 1px;
margin-left: 6px;
}
.sheet-spacer {
margin-right: 15px;
margin-left: 15px
}
.sheet-tinyText {
font-size: 8px;
}
.sheet-center {
text-align: center;
}
.sheet-select-standard{
.sheet-select-standard {
margin-bottom: 0px;
border-top: none;
border-left: none;
@@ -341,6 +358,7 @@ input.sheet-tab10:checked + span.sheet-tab10
.sheet-checkbox-standard {
margin-top: 8px;
}
.sheet-sub-section {
margin-right: 30px;
margin-top: 20px;
@@ -359,10 +377,10 @@ input.sheet-tab10:checked + span.sheet-tab10
display: block;
}
.sheet-two-column13{
.sheet-two-column13 {
display: grid;
grid-column-gap: 1rem;
grid-row-gap: 0px ;
grid-row-gap: 0px;
grid-template-columns: 210px *;
grid-template-areas: "tcleft tcright";
grid-template-rows: repeat(auto-fill, auto-fill);
@@ -374,15 +392,17 @@ input.sheet-tab10:checked + span.sheet-tab10
grid-row: 1 / span 9;
}
.sheet-biggroup > div {
.sheet-biggroup>div {
margin-bottom: 20px;
margin-left: 15px;
float: left;
}
.sheet-encumberancelevels {
grid-row: 11 / span 2;
}
.sheet-encumberancelevels > div {
.sheet-encumberancelevels>div {
margin-bottom: 5px;
margin-left: 10px;
float: left;
@@ -393,14 +413,15 @@ input.sheet-tab10:checked + span.sheet-tab10
border-radius: 2px;
}
/* Stuff for the stats page */
.sheet-attributebox {
padding-top: 4px;
padding-bottom: 7px;
padding-left: 0px;
padding-right: 0px;
border-right: none;
}
.sheet-attributebox p {
@@ -438,10 +459,10 @@ input:read-only {
background-color: lightgray;
}
.sheet-three-columnX{
.sheet-three-columnX {
display: grid;
grid-column-gap: 1rem;
grid-row-gap: 0px ;
grid-row-gap: 0px;
grid-template-columns: 210px 100px auto;
grid-template-areas: "tcleft tccenter tcright";
grid-template-rows: repeat(auto-fill, auto-fill);
@@ -449,45 +470,50 @@ input:read-only {
margin: 0px;
}
.sheet-rolltemplate-container {
background-color: linen ;
color: #000;
padding: 2px;
background-color: linen;
color: #000;
padding: 2px;
border-radius: 10px;
border-color: black;
border: 2px solid #000;
border: 2px solid #000;
}
.sheet-rolltemplate-header {
border-bottom: 1px solid black;
font-size: larger;
text-align: center;
}
.sheet-rolltemplate-rowhead {
width: 75px;
text-align: left;
display: inline-block;
}
.sheet-rolltemplate-item {
text-align: right;
display: inline-block;
width: 75px;
}
.sheet-rolltemplate-result {
font-size: larger;
text-align: center;
}
.sheet-rolltemplate-fail {
background-color: pink;
}
.sheet-rolltemplate-succeed {
background-color: palegreen;
}
.sheet-melee-weapons{
.sheet-melee-weapons {
display: inline-table;
grid-column-gap: 0;
grid-row-gap: 0px ;
grid-row-gap: 0px;
grid-template-columns: auto auto auto auto auto auto auto auto auto auto auto auto auto auto auto;
grid-template-areas: "mwitem mwsize mwtype mwspeed mwskill mwattrnd mwinitmod mwplushit mwplusdam mwdamt mwdams mwdamm mwdaml mwdamh mwdamg";
/* mwnotes"; */
@@ -497,10 +523,10 @@ input:read-only {
width: 100%;
}
.sheet-missile-weapons{
.sheet-missile-weapons {
display: inline-table;
grid-column-gap: 0;
grid-row-gap: 0px ;
grid-row-gap: 0px;
grid-template-columns: auto auto auto auto auto auto auto auto auto auto auto auto auto auto auto auto;
grid-template-areas: "mwitem mwsize mwtype mwrof mwskill mwranges mwrangem mwrangel mwplushit mwplusdam mwdamt mwdams mwdamm mwdaml mwdamh mwdamg";
grid-template-rows: repeat(auto-fill, auto-fill);
@@ -521,8 +547,7 @@ input:read-only {
height: 27px;
}
.repcontrol
{
.repcontrol {
width: fit-content;
}
@@ -557,11 +582,11 @@ input:read-only {
padding: 0px;
}
.sheet-spell-by-level{
.sheet-spell-by-level {
display: inline-grid;
grid-column-gap: 1;
grid-row-gap: 1px ;
grid-template-columns: 17% repeat(10,auto) 20% 7%;
grid-row-gap: 1px;
grid-template-columns: 17% repeat(10, auto) 20% 7%;
grid-template-areas: "tcleft l0 l1 l2 l3 l4 l5 l6 l7 l8 l9 option optionValue";
padding: 0px;
padding-left: 5px;
@@ -572,7 +597,7 @@ input:read-only {
.sheet-spell-grid {
display: grid;
grid-column-gap: 1;
grid-row-gap: 1px ;
grid-row-gap: 1px;
grid-template-columns: 75% 25%;
grid-template-areas: "spellleft spellright";
padding: 0px;
@@ -580,16 +605,19 @@ input:read-only {
margin: 0px;
border: black 1px;
}
.sheet-spellleft {
grid-area: spellleft;
}
.sheet-spellright {
grid-area: spellright;
}
.sheet-spell-fail-grid {
display: grid;
grid-column-gap: 1;
grid-row-gap: 1px ;
grid-row-gap: 1px;
grid-template-columns: auto 25%;
grid-template-areas: "tcleft tcright";
padding: 0px;
@@ -602,11 +630,11 @@ input:read-only {
border-top: 2px solid black;
}
.sheet-clericspell-by-level{
.sheet-clericspell-by-level {
display: grid;
grid-column-gap: 1;
grid-row-gap: 1px ;
grid-template-columns: 17% repeat(9,auto) 20% 7%;
grid-row-gap: 1px;
grid-template-columns: 17% repeat(9, auto) 20% 7%;
grid-template-areas: "tcleft l1 l2 l3 l4 l5 l6 l7 option optionValue";
padding: 0px;
padding-left: 5px;
@@ -617,8 +645,8 @@ input:read-only {
.sheet-thief-grid {
display: grid;
grid-column-gap: 1;
grid-row-gap: 1px ;
grid-template-columns: 20% repeat(8,50px);
grid-row-gap: 1px;
grid-template-columns: 20% repeat(8, 50px);
grid-template-areas: "thiefskill thieftotal base allocated racial dexadjust adjust other";
padding: 0px;
padding-left: 5px;
@@ -638,7 +666,7 @@ input:read-only {
.sheet-level-grid {
display: grid;
grid-column-gap: 1;
grid-row-gap: 1px ;
grid-row-gap: 1px;
grid-template-columns: repeat(auto-fill, minmax(32px, 32px));
padding: 0px;
padding-left: 5px;
@@ -648,7 +676,7 @@ input:read-only {
.sheet-level-gridcol {
display: grid;
grid-row-gap: 1px ;
grid-row-gap: 1px;
grid-template-columns: 32px;
padding: 0px;
margin: 0px;
@@ -664,5 +692,5 @@ input:read-only {
height: 24px;
}
/********************************************************************/
/********************************************************************/
+2085 -2082
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+260
View File
@@ -0,0 +1,260 @@
{
"character-mode": "Character",
"basic-moves-mode": "Basic Moves",
"character-name": "Character Name:",
"playbook-selector-placeholder": " Choose A Playbook",
"virgin-playbook-option": "The Virgin",
"nerd-playbook-option": "The Nerd",
"chick-playbook-option": "The Chick",
"jock-playbook-option": "The Jock",
"scarred-playbook-option": "The Scarred",
"exorcist-playbook-option": "The Exorcist",
"sheriff-playbook-option": "The Sheriff",
"kid-playbook-option": "The Kid",
"outcast-playbook-option": "The Outcast",
"professor-playbook-option": "The Professor",
"playbook-select-title": "Select a Playbook above to get started",
"virgin-playbook-description": "Humble, shy, brave and responsible. The Virgin can always be relied on, and timid manners hide true courage before danger. She may not be a literal virgin, but her intentions are pure and she always means the best. Alas, many people\n consider The Virgin immature, naive or insignificant, so her opinion is rarely heard and it is much harder for her to convince others that she might be right.",
"playbook-attributes": "Attributes",
"attributes-pick-one": "Pick one.",
"virgin-statset-1": "Body 0, Bravery 2, Charms -1, Smarts 1",
"virgin-statset-2": "Body 1, Bravery 2, Charms -1, Smarts 0",
"virgin-statset-3": "Body -1, Bravery 2, Charms 0, Smarts 1",
"virgin-statset-4": "Body 0, Bravery 2, Charms 0, Smarts 0",
"roll-body-label": "Body:",
"roll-bravery-label": "Bravery:",
"roll-charms-label": "Charms:",
"roll-smarts-label": "Smarts:",
"playbook-sympathy-label": "Sympathy: ",
"playbook-sympathy-description-1": "<i>You can get sympathy points by: failing a roll, using certain playbooks moves, or by playing out relationships with other characters.</i>",
"playbook-sympathy-description-2": "<i>You can spend sympathy points to trigger two basic moves: <b>get lucky</b> and <b>come back</b>.</i>",
"playbook-feartrack-label": "Fear: ",
"playbook-fear-description-1": "<i>If you fill up all of your character's fear points, you can spend 5 sympathy points to <b>come back</b>.</i>",
"playbook-fear-description-2": "<i>Otherwise, your character becomes a <b>threat</b>.</i>",
"virgin-fear-move-description": "<b>Fear Move:</b> When you attract attention by being rude and loud, remove a <i>fear point</i>.",
"playbook-health-description-1": "<i>When you suffer <b>harm</b>, mark a box above.</i>",
"playbook-health-description-2": "<i>Once per movie, when you suffer harm, you can immediately cancel it by choosing a trauma instead. When you have a <b>trauma</b>, rolls with affected attribute are one tier lower.</i>",
"playbook-health-description-3": "<i>When you mark all the boxes above, your character has died. You can then activate your <b>death move</b>.</i>",
"trauma-wound": "Wound (Body)",
"trauma-panic": "Panic (Bravery)",
"trauma-mutilation": "Mutilation (Charms)",
"trauma-shock": "Shock (Smarts)",
"playbook-virgin-deathmove": "<b>Death Move:</b> When you die, choose the character you trusted the most. If they try to avenge your death, they take a <i>sympathy point</i>. If they try to save themselves, they lose a <i>sympathy point</i>.",
"playbook-basic-move-desc": "<i>You get this move.</i>",
"playbook-virgin-basic-move": "<b>Audience favorite</b> - You only need 4 sympathy points to <b>come back</b>.",
"playbook-pick-move-desc": "<i>Also pick one of these.</i>",
"playbook-virgin-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-virgin\" name=\"attr_moves-virgin-1\"> <b>I'm into survival</b> - When you <b>think on the spot</b>, ask 1 additional question. You can ask 1 question even on a miss, but The Director still makes a move against you.",
"playbook-virgin-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-virgin\" name=\"attr_moves-virgin-2\"> <b>Scream Queen</b> - You are able to let out blood curdling screams that haunt the audience for a while. When you roll a miss on <b>escape</b> or <b>struggle with horror</b> moves, take 2 <i>sympathy points</i> instead of one.",
"playbook-virgin-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-virgin\" name=\"attr_moves-virgin-3\"> <b>Fight Smart</b> - When you use your surroundings or lay traps against the current threat, <b>charge</b> with <i>Smarts</i> instead of <i>Body</i>.",
"playbook-virgin-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-virgin\" name=\"attr_moves-virgin-4\"> <b>I won't leave you!</b> - If there are only two protagonists left alive, yourself included, take <i>+1 ongoing</i> for any <b>charge</b> rolls. If you are the only protagonist left alive, take a <i>sympathy point</i> as well.",
"playbook-virgin-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-virgin\" name=\"attr_moves-virgin-5\"> <b>Final Girl</b> - If there are only two protagonists left alive, yourself included, take <i>+1 ongoing</i> for any <b>charge</b> rolls. If you are the only protagonist left alive, take a <i>sympathy point</i> as well",
"nerd-playbook-description": "Smart, shy, witty and dorky. The Nerd is often made fun of and rarely (if ever) gets laid. So they hide their insecurities behind huge amounts of savviness, including the genre savviness.",
"nerd-statset-1": "Body -1, Bravery 1, Charms 0, Smarts 2",
"nerd-statset-2": "Body -1, Bravery 0, Charms 1, Smarts 2",
"nerd-statset-3": "Body 0, Bravery 1, Charms -1, Smarts 2",
"nerd-statset-4": "Body 0, Bravery 0, Charms 0, Smarts 2",
"nerd-fear-move-description": "<b>Fear Move:</b> When you separate from a group to satiate your curiosity, remove a <i>fear point</i>.",
"playbook-nerd-deathmove": "<b>Death Move:</b> When you die, you can choose another character and declare you have left a clue for them concerning the movie’s plot. Describe how they can obtain your message. As soon as it is obtained, the chosen character\n can ask 1 question to <b>unveil the hidden</b>.",
"playbook-moves-pick-two": "<i>Pick two of these.</i>",
"playbook-nerd-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-nerd\" name=\"attr_moves-nerd-1\"> <b>Thank God, I'm a virgin</b> - You only need 4 <i>sympathy points</i> to come back, like The virgin playbook.",
"playbook-nerd-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-nerd\" name=\"attr_moves-nerd-2\"> <b>Inner Courage</b> - You are braver than you think. When you <b>struggle with horror</b> and roll 10+, take <i>+1 forward</i>.",
"playbook-nerd-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-nerd\" name=\"attr_moves-nerd-3\"> <b>I'm getting outta here!</b> - When you <b>escape</b>, making things worse for others (leaving your friends behind, dropping important stuff etc.) take <i>+1 ongoing</i> until you have escaped.",
"playbook-nerd-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-nerd\" name=\"attr_moves-nerd-4\"> <b>Geek in distress</b> - When you are in danger and another character successfully saves you, they take <i>1 sympathy point</i>.",
"playbook-nerd-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-nerd\" name=\"attr_moves-nerd-5\"> <b>Horror fan</b> - You know all the rules and all the cliches to survive in a horror movie. When you <b>unveil the hidden</b> or <b>think on the spot</b>,\n you can add the following questions to the list.\n ",
"playbook-nerd-move-description-question-1": "Who is going to be in danger next?",
"playbook-nerd-move-description-question-2": "What misfortune can happen now?",
"playbook-nerd-move-description-question-3": "What should we definitely not do?",
"playbook-nerd-believe-move-description": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-nerd\" name=\"attr_moves-nerd-6\"> <b>You have to believe me!</b> - When you are trying to convince someone of something outlandish or trying to prove something seemingly impossible, take <i>+1 forward</i> to <b>get what you want</b>.",
"chick-playbook-description": "Vain, sexy, bratty and popular. The Chick attracts attention in any company and things always go her way. At least, they would have, but the horror universe despises beautiful, successful people for some reason. So The Chick is usually\n one of the first to end up in danger.",
"chick-statset-1": "Body 1, Bravery -1, Charms 2, Smarts 0",
"chick-statset-2": "Body 0, Bravery -1, Charms 2, Smarts 1",
"chick-statset-3": "Body 1, Bravery 0, Charms 2, Smarts -1",
"chick-statset-4": "Body 0, Bravery 0, Charms 2, Smarts 0",
"chick-fear-move-description": "<b>Fear Move:</b> When you ignore weird and suspicious occurrences to appease your desires, remove a <i>fear point</i>.",
"playbook-chick-deathmove": "<b>Death Move:</b> When you die, choose a character who is going to hear your screams or stumble upon your corpse. From sheer shock, this character takes <i>+1 forward</i> to <b>escape</b> or <b>charge</b>&gt;.",
"playbook-chick-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-chick\" name=\"attr_moves-chick-1\"> <b>Damsel in distress</b> - You start the movie with <i>-1 sympathy points</i>. In return, you get +1 Charms (max 3).",
"playbook-chick-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-chick\" name=\"attr_moves-chick-2\"> <b>Alpha bitch</b> - When you insult, humiliate or embarrass another character, take <i>+1 forward</i> for your bloated self-esteem. If it is a player character,\n they take a <i>sympathy point</i>.",
"playbook-chick-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-chick\" name=\"attr_moves-chick-3\"> <b>Come on, this isn't funny!</b> - You never know when it is better to shut up. When you attract attention to yourself in an obviously tense or creepy situation,\n take a <i>sympathy point</i>.",
"playbook-chick-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-chick\" name=\"attr_moves-chick-4\"> <b>Sex appeal</b> - When you use your looks and sexiness to <b>get what you want</b>, treat 7-9 as 10+. Take <i>-1 forward</i> to any move except for <b>get what you want</b> afterwards..",
"playbook-chick-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-chick\" name=\"attr_moves-chick-5\"> <b>Surprise discovery</b> - You can suddenly bump into something scary and connected to the plot. Take a <i>fear point</i> to ask a question from the <b>unveil the hidden</b> move without having to roll.",
"playbook-chick-move-description-6": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-chick\" name=\"attr_moves-chick-6\"> <b>Dick move</b> - When you betray another character to achieve a selfish goal, roll with <b>Smarts</b>. On 10+, your plan succeeds, and The Director makes\n a move against the betrayed character. On 7-9, your plan succeeds but you lose a <i>sympathy point</i>. On a miss, you lose a <i>sympathy point</i>, and The Director makes a move against you.",
"jock-playbook-description": "Rude, masculine, handsome and rough. The Jock is bathing in fame and adoration because of his strength, toughness and awesomeness. He is the fastest, strongest and meanest badass around here, and doomed are those who try to mess with\n him! At least, that is what The Jock thinks.",
"jock-statset-1": "Body 2, Bravery 0, Charms 1, Smarts -1",
"jock-statset-2": "Body 2, Bravery 1, Charms 0, Smarts -1",
"jock-statset-3": "Body 2, Bravery -1, Charms 1, Smarts 0",
"jock-statset-4": "Body 2, Bravery 0, Charms 0, Smarts 0",
"playbook-jock-deathmove": "<b>Death Move:</b> When you die, you can <b>charge</b> one last time with <i>+1 forward</i>.",
"playbook-jock-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-jock\" name=\"attr_moves-jock-1\"> <b>The Bully</b> - When you physically humiliate another character, take <i>+1 forward</i> for how powerful you feel. If it is a player character, they take\n a <i>sympathy point</i>.",
"playbook-jock-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-jock\" name=\"attr_moves-jock-2\"> <b>Big friend</b> - When you successfully protect or save other characters from danger using your physical prowess, take a <i>sympathy point</i>.",
"playbook-jock-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-jock\" name=\"attr_moves-jock-3\"> <b>Talk to the fist</b> - When you <b>get what you want</b> through intimidation, threats or violence, even on 7-9, you get it with no strings attached. Instead,\n you lose a <i>sympathy point</i>.",
"playbook-jock-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-jock\" name=\"attr_moves-jock-4\"> <b>Athletic beauty</b> - When you <b>get what you want</b> by showing off and making impressions, take <i>+1 forward</i>.",
"playbook-jock-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-jock\" name=\"attr_moves-jock-5\"> <b>If I don't come back...</b> - When you come into a conflict facing certain death, take <i>+1 forward</i>. If you step down from a challenge and take a safer\n route, take <i>-1 forward</i>.",
"playbook-jock-move-description-6": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-jock\" name=\"attr_moves-jock-6\"> <b>Screams like a girl</b> - You react to scary things in a ridiculously cowardly manner, very inappropriate for your macho image. When something scary comes\n your way, you can take a <i>fear point</i> to take a <i>sympathy point</i> as well.",
"scarred-playbook-description": "Moody, hardened and traumatized. The Scarred met with the true nightmare once and made it out alive, but at the cost of their soul. They live their life in fear of the next meeting with evil. This meeting is going to be inevitable\n and merciless as fate itself.",
"scarred-statset-1": "Body 1, Bravery 2, Charms -1, Smarts 0",
"scarred-statset-2": "Body -1, Bravery 2, Charms 0, Smarts 1",
"scarred-statset-3": "Body 0, Bravery 2, Charms -1, Smarts 1",
"scarred-statset-4": "Body 0, Bravery 2, Charms 0, Smarts 0",
"scarred-fear-move-description": "<b>Fear Move:</b> When you open up to another character and share the burden of your past with them, remove a <i>fear point</i>. This character loses a <i>sympathy point</i>.",
"playbook-scarred-deathmove": "<b>Death Move:</b> When you die, give your <b>hideout</b> (see Moves—Hideout) one more advantage or remove one disadvantage. If nobody knows about your hideout yet, choose a character to give access to it.",
"playbook-scarred-basic-move": "<b>After all these years...</b> - When you come face to face with any monster of the movie, you can declare it is the monster you had faced before. Describe briefly how your last fight went and roll with <b>Bravery</b>.",
"playbook-scarred-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-scarred\" name=\"attr_moves-scarred-1\"> <b>He who fights monsters</b> - When you put another character in danger to get a shot at hurting the evil, take <i>+1 forward</i>. This character takes\n a <i>sympathy point</i>.",
"playbook-scarred-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-scarred\" name=\"attr_moves-scarred-2\"> <b>Ready for a rematch</b> - When you train obsessively to prepare for the next battle with the evil, you can take <i>-1 forward</i> to get no consequences\n on your next <b>Body</b> roll.",
"playbook-scarred-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-scarred\" name=\"attr_moves-scarred-3\"> <b>Properly paranoid</b> - When you act with suspicion and hostility against someone, you can <b>get what you want</b> from them as if you rolled 10+,\n but you lose a <i>sympathy point</i>.",
"playbook-scarred-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-scarred\" name=\"attr_moves-scarred-4\"> <b>It's the only way</b> - When you need a special weapon or ingredient to beat a monster, roll with <b>Smarts</b>. On 10+, you have it ready and prepared.\n On 7-9, you have it but something is wrong with it: The Director will tell you what. On a miss, you have it, but the evil adapts, and The Director makes a move against you.",
"playbook-advantage-1": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-adv\" name=\"attr_moves-scarred-hideout-adv1\"> well hidden",
"playbook-advantage-2": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-adv\" name=\"attr_moves-scarred-hideout-adv2\"> easy to defend",
"playbook-advantage-3": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-adv\" name=\"attr_moves-scarred-hideout-adv3\"> has supplies",
"playbook-advantage-4": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-adv\" name=\"attr_moves-scarred-hideout-adv4\"> has weapons",
"playbook-disadvantage-1": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-disadv\" name=\"attr_moves-scarred-hideout-disadv1\"> takes time to get to it",
"playbook-disadvantage-2": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-disadv\" name=\"attr_moves-scarred-hideout-disadv2\"> space for only one",
"playbook-disadvantage-3": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-disadv\" name=\"attr_moves-scarred-hideout-disadv3\"> easy for evil to find",
"playbook-disadvantage-4": "<input type=\"checkbox\" class=\"sheet-scarred-hideout-disadv\" name=\"attr_moves-scarred-hideout-disadv4\"> easy for evil to break in",
"exorcist-playbook-description": "Sage, mysterious and truly faithful. The Exorcist does not face evil by accident. They go to fight it deliberately, to strike the forces of darkness with the knowledge of secret lore and the might of pure faith.",
"exorcist-statset-1": "Body -1, Bravery 0, Charms 1, Smarts 2",
"exorcist-statset-2": "Body -1, Bravery 1, Charms 0, Smarts 2",
"exorcist-statset-3": "Body 0, Bravery 1, Charms -1, Smarts 2",
"exorcist-statset-4": "Body 0, Bravery 0, Charms 0, Smarts 2",
"exorcist-fear-move-description": "<b>Fear Move:</b> When you openly provoke evil entities to contact or fight you, remove a <i>fear point</i>.",
"playbook-exorcist-deathmove": "<b>Death Move:</b> When you die, <i>hold</i> one. Use that <i>hold</i> to turn any roll of any character into 10+.",
"playbook-exorcist-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-exorcist\" name=\"attr_moves-exorcist-1\"> <b>Take me instead!</b> - When you ask evil forces to attack you instead of other characters and you do not try to protect yourself, all other characters\n can exit the scene safely. Whatever was coming for them is coming for you.",
"playbook-exorcist-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-exorcist\" name=\"attr_moves-exorcist-2\"> <b>Vatican's libraries</b> - You have access to a special library, archive or database concerning the supernatural. When you use this source of knowledge\n to <b>unveil the hidden</b>, ask 1 additional question. On a miss, you can still ask 1 additional question, but The Director makes a move against you.",
"playbook-exorcist-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-exorcist\" name=\"attr_moves-exorcist-3\"> <b>God bless you</b> - When you mystically bless another character, give them one of your <i>sympathy points</i>.",
"playbook-exorcist-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-exorcist\" name=\"attr_moves-exorcist-4\"> <b>Strength of convinction</b> - When you try to <b>get what you want</b> using religious or mystical arguments, take <i>+1 forward</i>.",
"playbook-exorcist-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-exorcist\" name=\"attr_moves-exorcist-5\"> <b>Fear no evil</b> - When you <b>struggle with horror</b> and roll 7-9, you do not take <i>-1 forward</i>.",
"playbook-exorcist-move-description-6": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-exorcist\" name=\"attr_moves-exorcist-6\"> <b>The power of Christ compels you!</b> - You can bind and banish evil entities using ancient rites and prayers. When you do so, roll with <b>Bravery</b>.",
"playbook-exorcist-move-description-7": "On 10+, evil is gone from the current scene (bound, forced to leave, isolated etc.) On 7-9, choose one:",
"playbook-exorcist-move-description-7-question-1": "You have stopped it only temporarily, it will reappear soon",
"playbook-exorcist-move-description-7-question-2": "You suffer <i>harm</i> or <i>trauma</i> from exhaustion",
"playbook-exorcist-move-description-7-question-3": "You lose a <i>sympathy point</i>",
"playbook-exorcist-move-description-8": "On a miss, evil laughs at your feeble prayers. Take a <i>fear point</i>, and The Director makes a move against you.",
"sheriff-playbook-description": "Scrupulous, simple-minded, methodical and dimwitted. The Sheriff’s job is to protect law and order, be it against stupid drunk kids or appallingly scary abominations.",
"sheriff-statset-1": "Body 2, Bravery 1, Charms 0, Smarts -1",
"sheriff-statset-2": "Body 2, Bravery 1, Charms -1, Smarts 0",
"sheriff-statset-3": "Body 2, Bravery 0, Charms 1, Smarts -1",
"sheriff-statset-4": "Body 2, Bravery 0, Charms 0, Smarts 0",
"sheriff-fear-move-description": "<b>Fear Move:</b> When you go alone to investigate weirdness or chase after a threat, remove a <i>fear point</i>.",
"playbook-sheriff-deathmove": "<b>Death Move:</b> When you die, you motivate your comrades to avenge you. Remove one <i>flawantage</i> of your <b>backup</b> (see <i>Moves—Backup</i>).",
"playbook-sheriff-merits": "<i>Merits</i>",
"playbook-sheriff-merit-1": "<input type=\"checkbox\" class=\"sheet-sheriff-car-merit\" name=\"attr_moves_sheriff_car-merit1\"> fast",
"playbook-sheriff-merit-2": "<input type=\"checkbox\" class=\"sheet-sheriff-car-merit\" name=\"attr_moves_sheriff_car-merit2\"> bench seats",
"playbook-sheriff-merit-3": "<input type=\"checkbox\" class=\"sheet-sheriff-car-merit\" name=\"attr_moves_sheriff_car-merit3\"> durable",
"playbook-sheriff-merit-4": "<input type=\"checkbox\" class=\"sheet-sheriff-car-merit\" name=\"attr_moves_sheriff_car-merit4\"> radio",
"playbook-sheriff-merit-5": "<input type=\"checkbox\" class=\"sheet-sheriff-car-merit\" name=\"attr_moves_sheriff_car-merit5\"> weapons",
"playbook-sheriff-flaws": "<i>Flaws</i>",
"playbook-sheriff-flaw-1": "<input type=\"checkbox\" class=\"sheet-sheriff-car-flaw\" name=\"attr_moves_sheriff_car-flaw1\"> one-man",
"playbook-sheriff-flaw-2": "<input type=\"checkbox\" class=\"sheet-sheriff-car-flaw\" name=\"attr_moves_sheriff_car-flaw2\"> fragile",
"playbook-sheriff-flaw-3": "<input type=\"checkbox\" class=\"sheet-sheriff-car-flaw\" name=\"attr_moves_sheriff_car-flaw3\"> slow",
"playbook-sheriff-flaw-4": "<input type=\"checkbox\" class=\"sheet-sheriff-car-flaw\" name=\"attr_moves_sheriff_car-flaw4\"> hard to start",
"playbook-sheriff-flaw-5": "<input type=\"checkbox\" class=\"sheet-sheriff-car-flaw\" name=\"attr_moves_sheriff_car-flaw5\"> breaks easily",
"playbook-sheriff-backup": "Backup",
"playbook-sheriff-backup-description": "You have several men under your command: rookie soldiers, younger hunters, guardsmen etc. Once per movie, you can call them for help, information or something else. Choose two <i>advantages</i> and two <i>disadvantages</i> for them.",
"playbook-sheriff-backup-advantages": "<i>Advantages</i>",
"playbook-sheriff-backup-advantage-1": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-advantage\" name=\"attr_moves_sheriff_backup-adv1\"> they believe whatever you say",
"playbook-sheriff-backup-advantage-2": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-advantage\" name=\"attr_moves_sheriff_backup-adv2\"> they know something you do not",
"playbook-sheriff-backup-advantage-3": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-advantage\" name=\"attr_moves_sheriff_backup-adv3\"> they are decent fighters",
"playbook-sheriff-backup-advantage-4": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-advantage\" name=\"attr_moves_sheriff_backup-adv4\"> they can arrive quickly",
"playbook-sheriff-backup-disadvantages": "<i>flawantages</i>",
"playbook-sheriff-backup-disadvantage-1": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-disadvantage\" name=\"attr_moves_sheriff_backup-disadv1\"> they are skeptical",
"playbook-sheriff-backup-disadvantage-2": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-disadvantage\" name=\"attr_moves_sheriff_backup-disadv2\"> they take their time to arrive",
"playbook-sheriff-backup-disadvantage-3": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-disadvantage\" name=\"attr_moves_sheriff_backup-disadv3\"> they are dumb and careless",
"playbook-sheriff-backup-disadvantage-4": "<input type=\"checkbox\" class=\"sheet-sheriff-backup-disadvantage\" name=\"attr_moves_sheriff_backup-disadv4\"> they are weak fighters",
"kid-playbook-description": "Cute, strange and sensitive. The Kid is very vulnerable and often falls prey to evil, so adults have to save and protect them. But however weak they may be, The Kid is also very perceptive, can see the unseen and find the unfindable.",
"kid-statset-1": "Body -1, Bravery 0, Charms 2, Smarts 1",
"kid-statset-2": "Body -1, Bravery 1, Charms 2, Smarts 0",
"kid-statset-3": "Body -1, Bravery 0, Charms 1, Smarts 2",
"kid-fear-move-description": "<b>Fear Move:</b> When you separate from a group to satiate your curiosity, remove a <i>fear point</i>.",
"playbook-kid-deathmove": "<b>Death Move:</b> When you die, choose a character who serves as your parental figure. This character takes 2 <i>fear points</i> or loses all <i>sympathy points</i>, their choice.",
"playbook-kid-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-kid\" name=\"attr_moves-kid-1\"> <b>No children were harmed</b> - Before the movie starts, roll with <b>Charms</b>. On 10+, hold two, on 7-9, hold one. Spend a hold to make a specific threat ignore you for a scene. On a miss, The Director holds one to turn any of your rolls into a miss.",
"playbook-kid-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-kid\" name=\"attr_moves-kid-2\"> <b>Cute and popular</b> - You only need 4 <i>sympathy points</i> to <b>come back</b>, like The Virgin playbook.",
"playbook-kid-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-kid\" name=\"attr_moves-kid-3\"> <b>Open mind</b> - You are able to connect spiritually with evil forces and learn the hidden truth about them. When you do it to <b>unveil the hidden</b>, treat 7-9 as 10+. On a miss, your own mind is contaminated: the Director will make you do something you desperately do not want to.",
"playbook-kid-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-kid\" name=\"attr_moves-kid-4\"> <b>Living bait</b> - When you willingly put yourself in harm’s way or attract hostile attention, take a <i>sympathy point</i>. Any character trying to save you takes <i>+1 forward</i>.",
"playbook-kid-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-kid\" name=\"attr_moves-kid-5\"> <b>Creepy games</b> - When you perform some childish activity (chalking, playing with dolls etc.) to reveal the plot’s hidden truth, take <i>+1 forward</i> to <b>unveil the hidden</b>. This way, you can even learn things you have no means to learn. On a miss, your games reveal someone’s horrible fate: name the character, and the Director makes a move against them.",
"playbook-kid-move-description-6": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-kid\" name=\"attr_moves-kid-6\"> <b>Innocent charm</b> - When you <b>get what you want</b> from a player’s character, on a miss, they get no <i>sympathy points</i> by doing the opposite of what you want.",
"outcast-playbook-description": "Unusual, unpredictable and full of surprises. The Outcast always represents some kind of minority and usually does not get along with peers. Nobody knows what to expect from The Outcast. Nobody knows if they are the first to die or will they save everybody in the end.",
"outcast-statset-1": "Body 2, Bravery 0, Charms 1, Smarts -1",
"outcast-statset-2": "Body -1, Bravery 2, Charms 0, Smarts 1",
"outcast-statset-4": "Body 0, Bravery 1, Charms -1, Smarts 2",
"outcast-fear-move-description": "<b>Fear Move:</b> When someone proposes a plan and you do the opposite or act contrary, remove a <i>fear point</i>.",
"playbook-outcast-deathmove": "<b>Death Move:</b> When you die, ask every player if their character feels remorse for mistreating you in the past. If they do, they take a <i>sympathy point</i>. If they do not, they take a <i>fear point</i>",
"playbook-outcast-basic-move": "<b>Hidden depths</b> - Take any move from The Chick, The Nerd or The Jock playbook.",
"playbook-outcast-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-outcast\" name=\"attr_moves-outcast-1\"> <b>Alone in danger</b> - When you end up alone against lethal danger, take <i>+1 forward</i> to <b>struggle with horror</b> or <b>charge</b>.",
"playbook-outcast-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-outcast\" name=\"attr_moves-outcast-2\"> <b>My buddy is out there</b> - Before the movie starts roll with <b>Smarts</b>. On 10+, <i>hold two</i>. On 7-9, <i>hold one</i>. Spend holds to appear in a scene just in the right position to help another character when they need it. On a miss, The Director holds one to turn one of your rolls into a miss.",
"playbook-outcast-move-description-3": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-outcast\" name=\"attr_moves-outcast-3\"> <b>First to die</b> - If you die while still having <i>sympathy points</i>, you can give one of them to any character you choose.",
"playbook-outcast-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-outcast\" name=\"attr_moves-outcast-4\"> <b>Come and get me, asshole!</b> - You can <b>get what you want</b> from monsters by taunting and insulting them. If you do so, on 7-9, you suffer <i>harm</i>.",
"playbook-outcast-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-outcast\" name=\"attr_moves-outcast-5\"> <b>Stoic longer</b> - When you <b>struggle with horror</b>, on 10+, you are so stoic and deadpan you actually inspire others. Everybody who is in a scene with you takes <i>+1 forward</i>.",
"professor-playbook-description": "Cranky, energetic and knowledgeable. The Professor stubbornly looks for the best solution even in most horrible predicaments, and their knowledge may be of great help to others. However, knowledge is a dangerous weapon in horror movies, and The Professor sometimes causes more harm than good.",
"professor-statset-1": "Body -1, Bravery 0, Charms 2, Smarts 1",
"professor-statset-2": "Body 0, Bravery -1, Charms 1, Smarts 2",
"professor-statset-3": "Body -1, Bravery 2, Charms 0, Smarts 1",
"professor-statset-4": "Body 0, Bravery 0, Charms 1, Smarts 1",
"professor-fear-move-description": "<b>Fear Move:</b> When you delegate an important task to someone less competent, remove a <i>fear point</i>.",
"playbook-professor-deathmove": "<b>Death Move:</b> When you die, name the character you see as your apprentice or successor. This character gains one of your picked moves until the movie ends.",
"playbook-professor-move-description-1": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-professor\" name=\"attr_moves-professor-1\"> <b>Monologuing</b> - When you perform a passionate monologue describing some horrible truth, roll with <b>Charms</b>. On a hit, your speech is eloquent and inspiring: everybody who can hear you takes <i>+1 forward</i>. On 7-9, your speech is also spooky and fills hearts with dread: one character of your choosing also takes a <i>fear point</i>. On a miss, your speech is plain terrifying: everybody who can hear you takes a <i>fear point</i>.",
"playbook-professor-move-description-2": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-professor\" name=\"attr_moves-professor-2\"> <b>Mad Scientist</b> - When you make a crazy experiment trying to solve your current problem, roll with <b>Smarts</b>. On a hit, it works and solves your problem. On 10+, choose one. On 7-9, choose two.",
"playbook-professor-move-description-2-question-1": "It corrupts you: take a <i>fear point</i>.",
"playbook-professor-move-description-2-question-2": "It is lethal: take <i>harm</i> or <i>trauma</i>.",
"playbook-professor-move-description-2-question-3": "It is monstrous: lose a <i>sympathy point</i>.",
"playbook-professor-move-description-3": "On a miss, it works in the sickest and most destructive way. It may solve your problem, but The Director makes a move against you.",
"playbook-professor-move-description-4": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-professor\" name=\"attr_moves-professor-3\"> <b>Occult truths</b> - Take any move from The Exorcist playbook.",
"playbook-professor-move-description-5": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-professor\" name=\"attr_moves-professor-4\"> <b>Mad from revelation</b> - When you <b>unveil the hidden</b>, take a <i>fear point</i> to ask 3 questions without making a roll.",
"playbook-professor-move-description-6": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-professor\" name=\"attr_moves-professor-5\"> <b>Commanding presence</b> - When you enter a scene in a dramatic or menacing fashion, roll with <b>Bravery</b>. On 10+, everyone immediately stops doing whatever they were doing until you do something. On 7-9, you pick one character (monsters included) to stop. On a miss, The Director immediately makes a move against you.",
"playbook-professor-move-description-7": "<input type=\"checkbox\" class=\"sheet-moves sheet-moves-professor\" name=\"attr_moves-professor-6\"> <b>What have I done!?</b> - When you confront a monster, you can declare that you are responsible, fully or partially, for its creation or release. Describe how it happened. Your next <b>charge</b> against this monster will count as 10+, but you cannot use the <b>come back</b> move for the rest of the movie.",
"playbook-escape-move-description-1": "<b>When you escape from direct danger</b>, roll with <b>Body</b> (if you use physical strength and dexterity, like climbing on a tree or punching through a door) or with <b>Bravery</b> (if you use self-control and willpower, like driving a\n car on a fragile rotting bridge).",
"playbook-escape-move-description-2": "On a hit, you escape for now.",
"playbook-escape-move-description-3": "On 7-9, you escape but suffer a setback, choose one.",
"playbook-escape-move-description-3-fail-1": "You lose something valuable",
"playbook-escape-move-description-3-fail-2": "You suffer <i>harm</i>",
"playbook-escape-move-description-3-fail-3": "You suffer trauma (can only be chosen once per movie)",
"playbook-escape-move-description-3-fail-4": "You end up in a different danger",
"playbook-escape-move-description-3-fail-5": "You lose a <i>sympathy point</i>",
"playbook-get-move-description-1": "<b>When you have leverage over another character, and you try to get something from them</b>, roll with <b>Charms</b>. What counts as “leverage” may differ, but usually you have to either exploit a personal relationship with this character\n or provide a definite argument why they should comply.",
"playbook-get-move-description-2": "On a hit, you are able to convince, influence or manipulate them.",
"playbook-get-move-description-3": "If it is a non-player character:",
"playbook-get-move-description-3-1": "On a 10+, they do what you want.",
"playbook-get-move-description-3-2": "On a 7-9, they do what you want, but with a troublesome condition or request.",
"playbook-get-move-description-3-3": "On a 7-9, they do what you want, but with a troublesome condition or request.",
"playbook-get-move-description-3-4": "On a miss, you have angered them or created further complications.",
"playbook-get-move-description-4": "If it is a player character:",
"playbook-get-move-description-4-1": "On 10+, they take a <i>sympathy point</i> and\n ",
"playbook-get-move-description-4-2": "On 7-9, they take a <i>sympathy point</i> if they do what you want.",
"playbook-get-move-description-4-3": "On a miss, they take a <i>sympathy point</i> if they do the opposite of what you want.",
"playbook-struggle-move-description-1": "<b>When you have to act all calm and rational in scary situations</b>, roll with <b>Bravery</b>. This move covers any dangerous situations where no other move can be applied. It also covers situations where you have to react to something scary\n by standing still, hiding, holding your breath, etc.",
"playbook-struggle-move-description-2": "On a hit, you overcome your fear, do what you want and do not succumb to panic.",
"playbook-struggle-move-description-3": "On 7-9, you succeed but fear takes its toll: take <i>-1 forward</i>.",
"playbook-struggle-move-description-4": "On a miss, you are so scared you mess things up: take a <i>fear point</i>, and the Director makes a move against you.",
"playbook-struggle-move-description-5": "Helping another character can also trigger this move. On a hit, the character you have helped takes <i>+1 forward</i>. You still resolve the move according to the instructions above.",
"playbook-unveil-move-description-1": "<b>When you research and investigate to pierce the plot’s mysteries</b>, roll with <b>Smarts</b>. “Research” is a broad term: you can go through old books of legends, observe ancient tombstones, hit Google for information, etc.",
"playbook-unveil-move-description-2": "On a hit, you can ask questions about the plot, and The Director has to answer honestly. On 10+, ask two. On a 7-9, ask one.",
"playbook-unveil-move-description-2-question-1": "What secret is hidden here?",
"playbook-unveil-move-description-2-question-2": "Where does this evil come from?",
"playbook-unveil-move-description-2-question-3": "What does this evil want?",
"playbook-unveil-move-description-2-question-4": "What is this evil's most powerful ability?",
"playbook-unveil-move-description-2-question-5": "What is this evil's weakness?",
"playbook-unveil-move-description-2-question-6": "What can be useful here?",
"playbook-unveil-move-description-3": "On a miss, the plot’s horrible truth damages your sanity: take a <i>fear point</i>.",
"playbook-unveil-move-description-4": "Remember: you can only use a particular method of research once. You cannot just look through an old cemetery again and again and again, gaining new answers. When the move is made it means you have found all there is to learn here. You have\n to use another method of research to learn more.",
"playbook-charge-move-description-1": "<b>When you use violence and physical prowess to solve problems</b>, roll with <b>Body</b>. On a hit, you harm your opposition or put them where you want (e.g. push the monster downstairs or break the door open).",
"playbook-charge-move-description-2": "Violence always has consequences. On 10+, choose one. On 7-9, choose two.",
"playbook-charge-move-description-2-consequences-1": "You suffer <i>harm</i>",
"playbook-charge-move-description-2-consequences-2": "You end up in danger",
"playbook-charge-move-description-2-consequences-3": "You lose a <i>sympathy point</i>",
"playbook-charge-move-description-2-consequences-4": "You take a <i>fear point</i>",
"playbook-charge-move-description-2-consequences-5": "You suffer <i>trauma</i> (can only be chosen once per movie)",
"playbook-think-move-description-1": "<b>When you come up with a solution or escape plan in the middle of danger</b>, roll with <b>Smarts</b>. On a hit, you can ask questions about your predicament, and The Director has to answer honestly. On 10+, ask two. On 7-9, ask one.",
"playbook-think-move-description-1-question-1": "How can I get out of here?",
"playbook-think-move-description-1-question-2": "Where can I hide?",
"playbook-think-move-description-1-question-3": "How can I hinder this threat?",
"playbook-think-move-description-1-question-4": "How can I protect _______?",
"playbook-think-move-description-2": "If you act according to answers, take <i>+1 ongoing</i> while the information is relevant. If, for example, you escape from the madman’s house, keep <i>+1 ongoing</i> until you are outside.",
"playbook-lucky-move-description-1": "<b>When you want something fortunate to happen to you</b>, spend a <i>sympathy point</i> and choose one:",
"playbook-lucky-move-description-1-choose-1": "take +1 forward",
"playbook-lucky-move-description-1-choose-2": "find something useful",
"playbook-lucky-move-description-1-choose-3": "create an opportunity",
"playbook-lucky-move-description-2": "If you want to take +1 forward, you need to spend a <i>sympathy point</i> before your next move.",
"playbook-lucky-move-description-3": "If you choose to find something useful, you declare that you can easily get just the right item for your immediate problem. For example, you have a gun in your locket to stand a chance against zombies. The limit here is that an item only gives\n you a chance to succeed, not a guaranteed success.",
"playbook-lucky-move-description-4": "If you choose to create an opportunity, you make a slight alteration to the scene. For example, when you are trapped in a windowless basement, you can say that the basement does have a window, just a small one. The limit here is that you can\n only alter one detail: you can say the basement has a window or that it is bulletproof - but not both. This alteration also cannot resolve the scene’s conflict entirely, only give you an advantage.",
"playbook-comeback-move-description-1": "<b>When your character dies or turns insane</b>, you have a chance to bring them back. Spend 5 <i>sympathy points</i> and describe how your character survived. Maybe we did not see what really happened, or maybe the mortal wound was not so\n mortal after all, or maybe your character recovers after a short panic.\n ",
"playbook-comeback-move-description-1-1": "If you bring a dead character back to life, take 1 <i>Health point</i> back. Your character can appear in the next scene, any moment you want.",
"playbook-comeback-move-description-1-2": "If you bring back a character who turned insane from fear, remove 1 <i>fear point</i>. Your character stays sane, and you can play them further."
}
+227 -153
View File
@@ -29,59 +29,61 @@ Questions and comments can be sent through Roll20 https://app.roll20.net/users/2
<div class="flexrow">
<div class="flexrow">
<div class="flexcol poolcontent">
<div class="poollabel">Accuracy</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_accuracy-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_accuracy-plus1">+1</button>
<button type="action" class="plusbutton" name="act_accuracy-plus3">+3</button>
<input type="number" name="attr_accuracy-current" value="0" />
<button type="action" class="minusbutton" name="act_accuracy-minus3">-3</button>
<button type="action" class="minusbutton" name="act_accuracy-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="act_accuracy-reset">Accuracy</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_accuracy-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_accuracy-plus1">+1</button>
<button type="action" class="plusbutton" name="act_accuracy-plus3">+3</button>
<input type="number" name="attr_accuracy-current" value="0" />
<button type="action" class="minusbutton" name="act_accuracy-minus3">-3</button>
<button type="action" class="minusbutton" name="act_accuracy-minus1">-1</button>
</div>
</div>
</div>
<div class="flexcol poolcontent">
<div class="poollabel">Movement</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_movement-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_movement-plus1">+1</button>
<button type="action" class="plusbutton" name="act_movement-plus3">+3</button>
<input type="number" name="attr_movement-current" value="0" />
<button type="action" class="minusbutton" name="act_movement-minus3">-3</button>
<button type="action" class="minusbutton" name="act_movement-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="attr_movement-reset">Movement</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_movement-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_movement-plus1">+1</button>
<button type="action" class="plusbutton" name="act_movement-plus3">+3</button>
<input type="number" name="attr_movement-current" value="0" />
<button type="action" class="minusbutton" name="act_movement-minus3">-3</button>
<button type="action" class="minusbutton" name="act_movement-minus1">-1</button>
</div>
</div>
</div>
</div>
<div class="flexrow">
<div class="flexcol poolcontent">
<div class="poollabel">Physicality</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_physicality-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_physicality-plus1">+1</button>
<button type="action" class="plusbutton" name="act_physicality-plus3">+3</button>
<input type="number" name="attr_physicality-current" value="0" />
<button type="action" class="minusbutton" name="act_physicality-minus3">-3</button>
<button type="action" class="minusbutton" name="act_physicality-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="attr_physicality-reset">Physicality</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_physicality-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_physicality-plus1">+1</button>
<button type="action" class="plusbutton" name="act_physicality-plus3">+3</button>
<input type="number" name="attr_physicality-current" value="0" />
<button type="action" class="minusbutton" name="act_physicality-minus3">-3</button>
<button type="action" class="minusbutton" name="act_physicality-minus1">-1</button>
</div>
</div>
</div>
<div class="flexcol poolcontent">
<div class="poollabel">Perception</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_perception-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_perception-plus1">+1</button>
<button type="action" class="plusbutton" name="act_perception-plus3">+3</button>
<input type="number" name="attr_perception-current" value="0" />
<button type="action" class="minusbutton" name="act_perception-minus3">-3</button>
<button type="action" class="minusbutton" name="act_perception-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="attr_perception-reset">Perception</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_perception-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_perception-plus1">+1</button>
<button type="action" class="plusbutton" name="act_perception-plus3">+3</button>
<input type="number" name="attr_perception-current" value="0" />
<button type="action" class="minusbutton" name="act_perception-minus3">-3</button>
<button type="action" class="minusbutton" name="act_perception-minus1">-1</button>
</div>
</div>
</div>
</div>
</div>
@@ -89,63 +91,63 @@ Questions and comments can be sent through Roll20 https://app.roll20.net/users/2
<div class="box-header flexrow">
<div class="flexrow">
<div class="flexcol poolcontent">
<div class="poollabel">Sorcery</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_sorcery-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_sorcery-plus1">+1</button>
<button type="action" class="plusbutton" name="act_sorcery-plus3">+3</button>
<input type="number" name="attr_sorcery-current" value="0" />
<button type="action" class="minusbutton" name="act_sorcery-minus3">-3</button>
<button type="action" class="minusbutton" name="act_sorcery-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="attr_sorcery-reset">Sorcery</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_sorcery-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_sorcery-plus1">+1</button>
<button type="action" class="plusbutton" name="act_sorcery-plus3">+3</button>
<input type="number" name="attr_sorcery-current" value="0" />
<button type="action" class="minusbutton" name="act_sorcery-minus3">-3</button>
<button type="action" class="minusbutton" name="act_sorcery-minus1">-1</button>
</div>
</div>
</div>
<div class="flexcol poolcontent">
<div class="poollabel">Interaction</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_interaction-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_interaction-plus1">+1</button>
<button type="action" class="plusbutton" name="act_interaction-plus3">+3</button>
<input type="number" name="attr_interaction-current" value="0" />
<button type="action" class="minusbutton" name="act_interaction-minus3">-3</button>
<button type="action" class="minusbutton" name="act_interaction-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="attr_interaction-reset">Interaction</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_interaction-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_interaction-plus1">+1</button>
<button type="action" class="plusbutton" name="act_interaction-plus3">+3</button>
<input type="number" name="attr_interaction-current" value="0" />
<button type="action" class="minusbutton" name="act_interaction-minus3">-3</button>
<button type="action" class="minusbutton" name="act_interaction-minus1">-1</button>
</div>
</div>
</div>
</div>
<div class="flexrow">
<div class="flexcol poolcontent">
<div class="poollabel">Intellect</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_intellect-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_intellect-plus1">+1</button>
<button type="action" class="plusbutton" name="act_intellect-plus3">+3</button>
<input type="number" name="attr_intellect-current" value="0" />
<button type="action" class="minusbutton" name="act_intellect-minus3">-3</button>
<button type="action" class="minusbutton" name="act_intellect-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="attr_intellect-reset">Intellect</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_intellect-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_intellect-plus1">+1</button>
<button type="action" class="plusbutton" name="act_intellect-plus3">+3</button>
<input type="number" name="attr_intellect-current" value="0" />
<button type="action" class="minusbutton" name="act_intellect-minus3">-3</button>
<button type="action" class="minusbutton" name="act_intellect-minus1">-1</button>
</div>
</div>
</div>
<div class="flexcol poolcontent">
<div class="poollabel">Sortiledge</div>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_sortiledge-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_sortiledge-plus1">+1</button>
<button type="action" class="plusbutton" name="act_sortiledge-plus3">+3</button>
<input type="number" name="attr_sortiledge-current" value="0" />
<button type="action" class="minusbutton" name="act_sortiledge-minus3">-3</button>
<button type="action" class="minusbutton" name="act_sortiledge-minus1">-1</button>
</div>
<button type="action" class="poollabel" name="attr_sortiledge-reset">Sortiledge</button>
<div class="flexrow">
<input type="number" class="maxnumber" name="attr_sortiledge-max" value="0"></input>
<div class="flexcol">
<button type="action" class="plusbutton" name="act_sortiledge-plus1">+1</button>
<button type="action" class="plusbutton" name="act_sortiledge-plus3">+3</button>
<input type="number" name="attr_sortiledge-current" value="0" />
<button type="action" class="minusbutton" name="act_sortiledge-minus3">-3</button>
<button type="action" class="minusbutton" name="act_sortiledge-minus1">-1</button>
</div>
</div>
</div>
</div>
</div>
<!-------------------- Rest -------------------->
<div class="flexrow restgroup centerforce">
<label><input type="checkbox" name="attr_rest1"/>
@@ -177,27 +179,27 @@ Questions and comments can be sent through Roll20 https://app.roll20.net/users/2
{{#^rollLess() rollresult difficulty}}
<span>I</span>
{{/^rollLess() rollresult difficulty}}
{{#^rollLess() enhancement1 difficulty}}
<span>I</span>
{{/^rollLess() enhancement1 difficulty}}
{{#^rollLess() enhancement2 difficulty}}
<span>I</span>
{{/^rollLess() enhancement2 difficulty}}
{{#^rollLess() enhancement3 difficulty}}
<span>I</span>
{{/^rollLess() enhancement3 difficulty}}
{{#^rollLess() enhancement4 difficulty}}
<span>I</span>
{{/^rollLess() enhancement4 difficulty}}
{{#^rollLess() enhancement5 difficulty}}
<span>I</span>
{{/^rollLess() enhancement5 difficulty}}
</div>
</rolltemplate>
@@ -209,15 +211,24 @@ Questions and comments can be sent through Roll20 https://app.roll20.net/users/2
///////////////////////////////////////////////////////////////////////////////////////////////
//Accuracy Functions
on('clicked:accuracy-reset', function() {
getAttrs(['accuracy-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'accuracy-current': +values['accuracy-max'] || 0
});
});
});
on('clicked:accuracy-plus3', function() {
getAttrs(['accuracy-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['accuracy-current'] || 0;
const level = +values['accuracy-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'accuracy-current': newlevel
'accuracy-current': newlevel
});
});
});
@@ -225,12 +236,12 @@ on('clicked:accuracy-plus3', function() {
on('clicked:accuracy-plus1', function() {
getAttrs(['accuracy-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['accuracy-current'] || 0;
const level = +values['accuracy-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'accuracy-current': newlevel
'accuracy-current': newlevel
});
});
});
@@ -238,12 +249,12 @@ on('clicked:accuracy-plus1', function() {
on('clicked:accuracy-minus3', function() {
getAttrs(['accuracy-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['accuracy-current'] || 0;
const level = +values['accuracy-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'accuracy-current': newlevel
'accuracy-current': newlevel
});
});
});
@@ -251,26 +262,35 @@ on('clicked:accuracy-minus3', function() {
on('clicked:accuracy-minus1', function() {
getAttrs(['accuracy-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['accuracy-current'] || 0;
const level = +values['accuracy-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'accuracy-current': newlevel
'accuracy-current': newlevel
});
});
});
//Movement Functions
on('clicked:movement-reset', function() {
getAttrs(['movement-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'movement-current': +values['movement-max'] || 0
});
});
});
on('clicked:movement-plus3', function() {
getAttrs(['movement-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['movement-current'] || 0;
const level = +values['movement-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'movement-current': newlevel
'movement-current': newlevel
});
});
});
@@ -278,12 +298,12 @@ on('clicked:movement-plus3', function() {
on('clicked:movement-plus1', function() {
getAttrs(['movement-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['movement-current'] || 0;
const level = +values['movement-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'movement-current': newlevel
'movement-current': newlevel
});
});
});
@@ -291,12 +311,12 @@ on('clicked:movement-plus1', function() {
on('clicked:movement-minus3', function() {
getAttrs(['movement-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['movement-current'] || 0;
const level = +values['movement-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'movement-current': newlevel
'movement-current': newlevel
});
});
});
@@ -304,26 +324,35 @@ on('clicked:movement-minus3', function() {
on('clicked:movement-minus1', function() {
getAttrs(['movement-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['movement-current'] || 0;
const level = +values['movement-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'movement-current': newlevel
'movement-current': newlevel
});
});
});
//Physicality Functions
on('clicked:physicality-reset', function() {
getAttrs(['physicality-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'physicality-current': +values['physicality-max'] || 0
});
});
});
on('clicked:physicality-plus3', function() {
getAttrs(['physicality-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['physicality-current'] || 0;
const level = +values['physicality-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'physicality-current': newlevel
'physicality-current': newlevel
});
});
});
@@ -331,12 +360,12 @@ on('clicked:physicality-plus3', function() {
on('clicked:physicality-plus1', function() {
getAttrs(['physicality-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['physicality-current'] || 0;
const level = +values['physicality-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'physicality-current': newlevel
'physicality-current': newlevel
});
});
});
@@ -344,12 +373,12 @@ on('clicked:physicality-plus1', function() {
on('clicked:physicality-minus3', function() {
getAttrs(['physicality-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['physicality-current'] || 0;
const level = +values['physicality-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'physicality-current': newlevel
'physicality-current': newlevel
});
});
});
@@ -357,26 +386,35 @@ on('clicked:physicality-minus3', function() {
on('clicked:physicality-minus1', function() {
getAttrs(['physicality-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['physicality-current'] || 0;
const level = +values['physicality-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'physicality-current': newlevel
'physicality-current': newlevel
});
});
});
//Perception Functions
on('clicked:perception-reset', function() {
getAttrs(['perception-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'perception-current': +values['perception-max'] || 0
});
});
});
on('clicked:perception-plus3', function() {
getAttrs(['perception-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['perception-current'] || 0;
const level = +values['perception-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'perception-current': newlevel
'perception-current': newlevel
});
});
});
@@ -384,12 +422,12 @@ on('clicked:perception-plus3', function() {
on('clicked:perception-plus1', function() {
getAttrs(['perception-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['perception-current'] || 0;
const level = +values['perception-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'perception-current': newlevel
'perception-current': newlevel
});
});
});
@@ -397,12 +435,12 @@ on('clicked:perception-plus1', function() {
on('clicked:perception-minus3', function() {
getAttrs(['perception-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['perception-current'] || 0;
const level = +values['perception-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'perception-current': newlevel
'perception-current': newlevel
});
});
});
@@ -410,12 +448,12 @@ on('clicked:perception-minus3', function() {
on('clicked:perception-minus1', function() {
getAttrs(['perception-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['perception-current'] || 0;
const level = +values['perception-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'perception-current': newlevel
'perception-current': newlevel
});
});
});
@@ -425,15 +463,24 @@ on('clicked:perception-minus1', function() {
///////////////////////////////////////////////////////////////////////////////////////////////
//Sorcery Functions
on('clicked:sorcery-reset', function() {
getAttrs(['sorcery-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'sorcery-current': +values['sorcery-max'] || 0
});
});
});
on('clicked:sorcery-plus3', function() {
getAttrs(['sorcery-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sorcery-current'] || 0;
const level = +values['sorcery-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'sorcery-current': newlevel
'sorcery-current': newlevel
});
});
});
@@ -441,12 +488,12 @@ on('clicked:sorcery-plus3', function() {
on('clicked:sorcery-plus1', function() {
getAttrs(['sorcery-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sorcery-current'] || 0;
const level = +values['sorcery-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'sorcery-current': newlevel
'sorcery-current': newlevel
});
});
});
@@ -454,12 +501,12 @@ on('clicked:sorcery-plus1', function() {
on('clicked:sorcery-minus3', function() {
getAttrs(['sorcery-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sorcery-current'] || 0;
const level = +values['sorcery-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'sorcery-current': newlevel
'sorcery-current': newlevel
});
});
});
@@ -467,26 +514,35 @@ on('clicked:sorcery-minus3', function() {
on('clicked:sorcery-minus1', function() {
getAttrs(['sorcery-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sorcery-current'] || 0;
const level = +values['sorcery-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'sorcery-current': newlevel
'sorcery-current': newlevel
});
});
});
//Interaction Functions
on('clicked:interaction-reset', function() {
getAttrs(['interaction-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'interaction-current': +values['interaction-max'] || 0
});
});
});
on('clicked:interaction-plus3', function() {
getAttrs(['interaction-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['interaction-current'] || 0;
const level = +values['interaction-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'interaction-current': newlevel
'interaction-current': newlevel
});
});
});
@@ -494,12 +550,12 @@ on('clicked:interaction-plus3', function() {
on('clicked:interaction-plus1', function() {
getAttrs(['interaction-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['interaction-current'] || 0;
const level = +values['interaction-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'interaction-current': newlevel
'interaction-current': newlevel
});
});
});
@@ -507,12 +563,12 @@ on('clicked:interaction-plus1', function() {
on('clicked:interaction-minus3', function() {
getAttrs(['interaction-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['interaction-current'] || 0;
const level = +values['interaction-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'interaction-current': newlevel
'interaction-current': newlevel
});
});
});
@@ -520,26 +576,35 @@ on('clicked:interaction-minus3', function() {
on('clicked:interaction-minus1', function() {
getAttrs(['interaction-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['interaction-current'] || 0;
const level = +values['interaction-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'interaction-current': newlevel
'interaction-current': newlevel
});
});
});
//Intellect Functions
on('clicked:intellect-reset', function() {
getAttrs(['intellect-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'intellect-current': +values['intellect-max'] || 0
});
});
});
on('clicked:intellect-plus3', function() {
getAttrs(['intellect-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['intellect-current'] || 0;
const level = +values['intellect-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'intellect-current': newlevel
'intellect-current': newlevel
});
});
});
@@ -547,12 +612,12 @@ on('clicked:intellect-plus3', function() {
on('clicked:intellect-plus1', function() {
getAttrs(['intellect-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['intellect-current'] || 0;
const level = +values['intellect-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'intellect-current': newlevel
'intellect-current': newlevel
});
});
});
@@ -560,12 +625,12 @@ on('clicked:intellect-plus1', function() {
on('clicked:intellect-minus3', function() {
getAttrs(['intellect-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['intellect-current'] || 0;
const level = +values['intellect-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'intellect-current': newlevel
'intellect-current': newlevel
});
});
});
@@ -573,26 +638,35 @@ on('clicked:intellect-minus3', function() {
on('clicked:intellect-minus1', function() {
getAttrs(['intellect-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['intellect-current'] || 0;
const level = +values['intellect-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'intellect-current': newlevel
'intellect-current': newlevel
});
});
});
//Sortiledge Functions
on('clicked:sortiledge-reset', function() {
getAttrs(['sortiledge-max'], function(values) {
// set the current attribute to maximumum
setAttrs({
'sortiledge-current': +values['sortiledge-max'] || 0
});
});
});
on('clicked:sortiledge-plus3', function() {
getAttrs(['sortiledge-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sortiledge-current'] || 0;
const level = +values['sortiledge-current'] || 0;
// increase by 1
const newlevel = level +3;
// save the updated attribute to the sheet
setAttrs({
'sortiledge-current': newlevel
'sortiledge-current': newlevel
});
});
});
@@ -600,12 +674,12 @@ on('clicked:sortiledge-plus3', function() {
on('clicked:sortiledge-plus1', function() {
getAttrs(['sortiledge-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sortiledge-current'] || 0;
const level = +values['sortiledge-current'] || 0;
// increase by 1
const newlevel = level +1;
// save the updated attribute to the sheet
setAttrs({
'sortiledge-current': newlevel
'sortiledge-current': newlevel
});
});
});
@@ -613,12 +687,12 @@ on('clicked:sortiledge-plus1', function() {
on('clicked:sortiledge-minus3', function() {
getAttrs(['sortiledge-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sortiledge-current'] || 0;
const level = +values['sortiledge-current'] || 0;
// increase by 1
const newlevel = level -3;
// save the updated attribute to the sheet
setAttrs({
'sortiledge-current': newlevel
'sortiledge-current': newlevel
});
});
});
@@ -626,13 +700,13 @@ on('clicked:sortiledge-minus3', function() {
on('clicked:sortiledge-minus1', function() {
getAttrs(['sortiledge-current'], function(values) {
// get the level stat, and coerce into a numerical value.
const level = +values['sortiledge-current'] || 0;
const level = +values['sortiledge-current'] || 0;
// increase by 1
const newlevel = level -1;
// save the updated attribute to the sheet
setAttrs({
'sortiledge-current': newlevel
'sortiledge-current': newlevel
});
});
});
</script>
</script>
+2400 -2307
View File
File diff suppressed because it is too large Load Diff
+3901 -2112
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -14,6 +14,10 @@ npm run build:pug:win
npm run build:css
```
These will then generate a dist folder that will have the finished code. From their you can upload them into the custom sheet sandbox for testing.
## Pushing Changes
Roll20 does not build our pug/stylus code for when we merge. This needs to be done locally by running `npm run gulp:build` in the Ironsworn/src directory.
## Translations
To keep our translation and fallback html content consistent. We are loading the translations into pug under the `locals` global variable. This allows us to call `locals[<translation-key>]` to get our content. This way we can propagate changes and avoid hardcoding content.
## Compatibility
The sheet has been tested across multiple browsers and devices, show below in the compatibility matrix:
|Browser|Windows|MacOs|Android|iOS|
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -5,6 +5,5 @@
"roll20userid": "76, 188691",
"preview": "Ironsworn.png",
"instructions": "Character Sheet for the Ironsworn TTRPG by Shawn Tomkin.\n See the [Ironsworn wiki page](https://wiki.roll20.net/Ironsworn) for how to use the sheet, useful links and info on recent updates.",
"patreon": "https://www.patreon.com/ayethin",
"legacy": true
"patreon": "https://www.patreon.com/ayethin"
}
-469
View File
@@ -1,469 +0,0 @@
// Fonts
@css {
@import url('https://fonts.googleapis.com/css?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900|Crimson+Text:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700|Roboto&display=swap');
}
// Common
@import './common/stylus/shared'
// Sheet Core
.charsheet
width 842px !important
margin 0 auto !important
padding 15px
std-font()
font-weight: 600;
input[type=text]
font-weight: 600;
&:focus
input-highlight(3px)
select
-webkit-appearance: none
-moz-appearance: none
text-indent: 1px
text-overflow: ''
select::-ms-expand
display: none
p
std-font('Crimson Text')
font-size 14.3px
line-height 1.25
h1
font-weight: bold
width: 100%
font-size: 28px
text-align: center
margin: 0 0 0px
padding: 10
text-transform: uppercase
h2
font-weight: bold
width: 100%
font-size: 18px
text-align: left
margin: 0 0 0px
padding: 0
text-transform: uppercase
h3
font-weight: bold
width: 100%
line-height 1.4em
font-size 1.2em
text-align: center
margin: 0 0 0px
padding: 0
text-transform: uppercase
.sheet-divide
margin-top 1em
h3.sheet-divide::after,
h3.sheet-divide::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 220px
h3.sheet-site-divide::after,
h3.sheet-site-divide::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 331px
h3.sheet-site-denizens-divide::after,
h3.sheet-site-denizens-divide::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 336px
h3.sheet-site-divide-notes::after,
h3.sheet-site-divide-notes::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 352px
h4
font-weight: bold
width: 100%
font-size: 16px
text-align: center
margin: 0 0 0px
padding: 0
text-transform: uppercase
h4.sheet-tab-title
display: inline-block
h5
font-weight: bold
font-size: 12px
text-align: left
margin: 0 0 0px
padding: 0
text-transform: uppercase
h6
font-size: 14px
font-weight: bold
text-align: left
margin-top: 2px
button[type="roll"]
align-items: left
color: #4C4D4F
font-weight: normal
font-size: 20px
text-decoration: none
background: none
background-image: none
border: none
box-shadow: none
text-shadow: none
padding: 0px 0px 0px 0px
margin: 0px 0px 0px 0px
text-align: center
button[type="roll"]:hover
transition: .5s ease
.sheet-heading-left
text-align: left
hr
border: 0
height: 1px
background #ccc
background-image: linear-gradient(to right, #ccc, #333, #ccc)
textarea
std-font('Crimson Text')
max-width 828px
border: 2px solid #4C4D4F
.sheet-btn
display: inline
width: 100%
font-weight: bold
font-size: 14px
padding 0
margin 0.5em
height 40px
padding 0.2em 0.2em 0.2em 0.2em
border: 2px solid #494a4c
cursor: pointer
&:hover
background #ccc
transition .5s ease
.sheet-common-btn
btn()
&:hover
background #ccc
transition .5s ease
.sheet-btn-content
padding 0.2em 0.2em 0.2em 0.2em
width 100%
text-align center
.sheet-btn-input
&:checked
& ~ .sheet-btn-content
background #4c4d4f
color #fff
button.btn.repcontrol_edit,
button.btn.repcontrol_add
border: 2px solid #4C4D4F
border-radius 0
font-weight bold
font-size 12px
text-shadow none
text-transform uppercase
padding 0.2em
margin 0.3em
color #4C4D4F
std-font()
background #dfe0e2
&:hover
background #bcbec2
&:focus
input-highlight(1px)
button.btn.repcontrol_edit
margin-right 3px
button.btn.repcontrol_add
margin-left 3px
// Pages
@import './pages/index'
// Components
@import './components/resources/resources'
@import './components/misses/misses'
@import './components/debilities/debilities'
@import './components/bonds/bonds'
@import './components/vows/vows'
@import './components/vows/threat'
@import './components/progress/progress'
@import './components/nav/nav-bar'
@import './components/momentum/momentum'
@import './components/stats/stats'
@import './components/settings/settings'
@import './components/notes/notes'
@import './components/moves/moves'
@import './components/sites/sites'
@import './components/assets/assets'
@import './components/oracles/oracles'
.sheet-debilities
margin-bottom: 0px
.sheet-debility
display: flex
flex-flow: row wrap
.sheet-flex-container
display flex
align-items flex-start
.sheet-flex-wrapper
display flex
flex-direction column
margin-bottom 10px
font-weight normal
padding 0.5em
.sheet-track-box-input
width: 80px
height: 45px !important
opacity: 0
vertical-align: top
.sheet-track-box-back
width: 80px
height: 45px
margin-top: -45px
.sheet-resources-box-input
width: 80px
height: 40px !important
opacity: 0
vertical-align: top
.sheet-resources-box-back
width: 80px
height: 40px
margin-top: -40px
.sheet-track-box-input:hover ~ .sheet-track-box-back,
.sheet-resources-box-input:hover ~ .sheet-resources-box-back
background: #ccc
transition: .5s ease;
.sheet-track-box-input:checked ~ .sheet-track-box-back,
.sheet-resources-box-input:checked ~ .sheet-resources-box-back
background: #4C4D4F
color: white
transition: .5s ease;
.sheet-track-box-value
padding: 0px
font-weight: bold
height: 35px
padding-top: 10px
font-size: 18px
color: inherit
.sheet-resources-box-value
padding: 0px
font-weight: bold
height: 35px
padding-top: 10px
font-size: 18px
color: inherit
.sheet-resources-title-box
width: 80px
height: 40px
display: flex
flex-direction: column
justify-content: center
align-items: center
border-radius: 0%
background: transparent
border: 2px solid #4C4D4F
margin-top: 20px
margin-bottom: 2px
.sheet-resources-box
width: 80px
height: 40px
display: flex
flex-direction: column
justify-content: center
align-items: center
border-radius: 0%
background: transparent
border: 2px solid #4C4D4F
margin-bottom: 2px
.sheet-pc-name
width: 100%
font-weight: bold
font-size: 14px
border: 2px solid #4C4D4F
background: #E6E7E8
color: #4C4D4F
border-radius: 0
.sheet-debil-desc
width: 100%
font-weight: bold
font-size: 14px
.sheet-border
border: 1px solid #ccc
border-radius: 4px
textarea.sheet-full-width
width: 95%
resize: vertical
input.sheet-filler[type="radio"],
input[type="checkbox"].sheet-checkbox
opacity: 0
width: 16px
height: 16px
position: relative
top: 5px
left: 6px
margin: -10px
cursor: pointer
z-index: 1
/* Fake radio/checkbox */
input[type="radio"] + span::before,
input[type="checkbox"].sheet-checkbox + span::before
margin-right: 4px
border: solid 1px #a8a8a8
line-height: 14px
text-align: center
display: inline-block
vertical-align: middle
-moz-box-shadow: 0 0 2px #ccc
-webkit-box-shadow: 0 0 2px #ccc
box-shadow: 0 0 2px #ccc
background: #f6f6f6
background: -moz-radial-gradient(#f6f6f6, #dfdfdf)
background: -webkit-radial-gradient(#f6f6f6, #dfdfdf)
background: -ms-radial-gradient(#f6f6f6, #dfdfdf)
background: -o-radial-gradient(#f6f6f6, #dfdfdf)
background: radial-gradient(#f6f6f6, #dfdfdf)
input[type="checkbox"].sheet-checkbox + span::before,
input.sheet-filler[type="radio"] + span::before
content: ""
width: 14px
height: 14px
font-size: 12px
-moz-border-radius: 3px
-webkit-border-radius: 3px
border-radius: 3px
input[type="checkbox"].sheet-checkbox:checked + span::before
content: "■"
input.sheet-zeroxp[type="radio"] + span::before
content: "0" !important
input.sheet-filler[type="radio"] + span::before
content: "■"
/* Remove dot from all radios _after_ selected one */
input.sheet-filler[type="radio"]:checked ~ input.sheet-filler[type="radio"] + span::before
content: ""
span.sheet-showhide:checked
background-color: #4C4D4F
color: white
transition: .5s ease;
span.sheet-showhide
display: inline
border: 1px solid #ccc
margin-right: 11px
border-radius: 4px
padding: 2px 4px
font-weight: bold
font-size: 14px
span.sheet-showhide:hover
cursor: pointer
border-radius: 4px
padding: 2px 4px
background-color: #ccc
color: #4C4D4F
transition: .5s ease;
div.sheet-showhide
hide()
.sheet-hide
display none
div.sheet-preview-roll
padding: 0em
input.sheet-show-hide:checked ~ div.sheet-show-hide
show-hide()
span.sheet-preview-roll
width: 30%
margin-left: 1em
.sheet-button-container
width: 2.5em
border: 2px solid #4C4D4F
.sheet-button-container-preview
width: 2.4em
.sheet-no-border
border: 0
.sheet-requirement-area
height: auto
margin-bottom: 5px
input.sheet-border-bottom
border-bottom: 1px solid #4C4D4F
border-radius: 0em
.sheet-full-width
width: 100%
margin-top: 0.3em
// Roll Templates
@import './roll-templates/template'
@import './legacy/roll-templates'
+482
View File
@@ -0,0 +1,482 @@
// Fonts
@css {
@import url('https://fonts.googleapis.com/css?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900|Crimson+Text:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700|Roboto&display=swap');
}
// Common
@import './common/stylus/shared'
// Sheet Core
.charsheet
width 842px !important
margin 0 auto !important
padding 15px
std-font()
font-weight normal
input[type=text]
font-weight: 600;
&:focus
input-highlight(3px)
select
-webkit-appearance: none
-moz-appearance: none
text-indent: 1px
text-overflow: ''
&::-ms-expand
display: none
li
font-weight normal
font-size 14.3px
p
std-font('Crimson Text')
font-size 14.3px
line-height 1.25
font-weight normal
margin 0
h1
font-weight: bold
width: 100%
font-size: 28px
text-align: center
margin: 0 0 0px
padding: 10
text-transform: uppercase
h2
font-weight: bold
width: 100%
font-size: 18px
text-align: left
margin: 0 0 0px
padding: 0
text-transform: uppercase
h3
font-weight: bold
width: 100%
line-height 1.4em
font-size 1.2em
text-align: center
margin: 0 0 0px
padding: 0
text-transform: uppercase
&.divide
&::after,
&::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 220px
&.site-divide
&::after,
&::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 331px
&.site-denizens-divide
&::after,
&::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 336px
&.site-divide-notes
&::after,
&::before
display: inline-block
content: ""
height: 5px
border-top: 2px solid #4C4D4F
top: 0
width: 352px
.divide
margin-top 1em
h4
font-weight: bold
width: 100%
font-size: 16px
text-align: center
margin: 0 0 0px
padding: 0
text-transform: uppercase
&.tab-title
display: inline-block
h5
font-weight: bold
font-size: 12px
text-align: left
margin: 0 0 0px
padding: 0
text-transform: uppercase
h6
font-size: 14px
font-weight: bold
text-align: left
margin-top: 2px
button[type="roll"]
align-items: left
color: #4C4D4F
font-weight: normal
font-size: 20px
text-decoration: none
background: none
background-image: none
border: none
box-shadow: none
text-shadow: none
padding: 0px 0px 0px 0px
margin: 0px 0px 0px 0px
text-align: center
&:hover
transition: .5s ease
.heading-left
text-align: left
hr
border: 0
height: 1px
background #ccc
background-image: linear-gradient(to right, #ccc, #333, #ccc)
textarea
std-font('Crimson Text')
max-width 828px
border: 2px solid #4C4D4F
font-weight normal
.btn
display: inline
width: 100%
font-weight: bold
font-size: 14px
padding 0
margin 0.5em
height 40px
padding 0.2em 0.2em 0.2em 0.2em
border: 2px solid #494a4c
border-radius 0
cursor: pointer
.common-btn
btn()
&:hover
background #ccc
transition .5s ease
.btn-content
padding 0.2em 0.2em 0.2em 0.2em
width 100%
text-align center
.btn-input
&:checked
& ~ .btn-content
background #4c4d4f
color #fff
button.btn.repcontrol_edit,
button.btn.repcontrol_add
width auto
height auto
border 2px solid #4C4D4F
border-radius 0
font-weight bold
font-size 12px
text-shadow none
text-transform uppercase
padding 0.2em
margin 0.3em
color #4C4D4F
std-font()
background #dfe0e2
&:hover
background #bcbec2
&:focus
input-highlight(1px)
button.btn.repcontrol_edit
margin-right 3px
button.btn.repcontrol_add
margin-left 3px
.debilities
margin-bottom: 0px
.debility
display: flex
flex-flow: row wrap
.flex-container
display flex
align-items flex-start
.flex-wrapper
display flex
flex-direction column
margin-bottom 10px
font-weight normal
padding 0.5em
.track-box-input
width: 80px
height: 45px !important
opacity: 0
vertical-align: top
.track-box-back
width: 80px
height: 45px
margin-top: -45px
.resources-box-input
width: 80px
height: 40px !important
opacity: 0
vertical-align: top
.resources-box-back
width: 80px
height: 40px
margin-top: -40px
.track-box-input:hover ~ .track-box-back,
.resources-box-input:hover ~ .resources-box-back
background: #ccc
transition: .5s ease;
.track-box-input:checked ~ .track-box-back,
.resources-box-input:checked ~ .resources-box-back
background: #4C4D4F
color: white
transition: .5s ease;
.track-box-value
padding: 0px
font-weight: bold
height: 35px
padding-top: 10px
font-size: 18px
color: inherit
.resources-box-value
padding: 0px
font-weight: bold
height: 35px
padding-top: 10px
font-size: 18px
color: inherit
.resources-title-box
width: 80px
height: 40px
display: flex
flex-direction: column
justify-content: center
align-items: center
border-radius: 0%
background: transparent
border: 2px solid #4C4D4F
margin-top: 20px
margin-bottom: 2px
.resources-box
width: 80px
height: 40px
display: flex
flex-direction: column
justify-content: center
align-items: center
border-radius: 0%
background: transparent
border: 2px solid #4C4D4F
margin-bottom: 2px
.pc-name
width: 100%
font-weight: bold
font-size: 14px
border: 2px solid #4C4D4F
background: #E6E7E8
color: #4C4D4F
border-radius: 0
.debil-desc
width: 100%
font-weight: bold
font-size: 14px
.border
border: 1px solid #ccc
border-radius: 4px
textarea.full-width
width: 95%
resize: vertical
input.filler[type="radio"],
input[type="checkbox"].checkbox
opacity: 0
width: 16px
height: 16px
position: relative
top: 5px
left: 6px
margin: -10px
cursor: pointer
z-index: 1
/* Fake radio/checkbox */
input[type="radio"] + span::before,
input[type="checkbox"].checkbox + span::before
margin-right: 4px
border: solid 1px #a8a8a8
line-height: 14px
text-align: center
display: inline-block
vertical-align: middle
-moz-box-shadow: 0 0 2px #ccc
-webkit-box-shadow: 0 0 2px #ccc
box-shadow: 0 0 2px #ccc
background: #f6f6f6
background: -moz-radial-gradient(#f6f6f6, #dfdfdf)
background: -webkit-radial-gradient(#f6f6f6, #dfdfdf)
background: -ms-radial-gradient(#f6f6f6, #dfdfdf)
background: -o-radial-gradient(#f6f6f6, #dfdfdf)
background: radial-gradient(#f6f6f6, #dfdfdf)
input[type="checkbox"].checkbox + span::before,
input.filler[type="radio"] + span::before
content: ""
width: 14px
height: 14px
font-size: 12px
-moz-border-radius: 3px
-webkit-border-radius: 3px
border-radius: 3px
input[type="checkbox"].checkbox:checked + span::before
content: "■"
input.zeroxp[type="radio"] + span::before
content: "0" !important
input.filler[type="radio"] + span::before
content: "■"
/* Remove dot from all radios _after_ selected one */
input.filler[type="radio"]:checked ~ input.filler[type="radio"] + span::before
content: ""
span.showhide:checked
background-color: #4C4D4F
color: white
transition: .5s ease;
span.showhide
display: inline
border: 1px solid #ccc
margin-right: 11px
border-radius: 4px
padding: 2px 4px
font-weight: bold
font-size: 14px
span.showhide:hover
cursor: pointer
border-radius: 4px
padding: 2px 4px
background-color: #ccc
color: #4C4D4F
transition: .5s ease;
div.showhide
hide()
.hide-element
display none
input[type='checkbox'].hide-element
display none
input[type='radio'].hide-element
display none
div.hide-element
display none
div.preview-roll
padding: 0em
input.show-hide:checked ~ div.show-hide
show-hide()
span.preview-roll
width: 30%
margin-left: 1em
.button-container
width: 2.5em
border: 2px solid #4C4D4F
.button-container-preview
width: 2.4em
.no-border
border: 0
.requirement-area
height: auto
margin-bottom: 5px
input.border-bottom
border-bottom: 1px solid #4C4D4F
border-radius: 0em
.full-width
width: 100%
margin-top: 0.3em
// Pages
@import './pages/index'
// Components
@import './components/resources/resources'
@import './components/misses/misses'
@import './components/debilities/debilities'
@import './components/bonds/bonds'
@import './components/vows/vows'
@import './components/vows/threat'
@import './components/progress/progress'
@import './components/nav/nav-bar'
@import './components/momentum/momentum'
@import './components/stats/stats'
@import './components/settings/settings'
@import './components/notes/notes'
@import './components/moves/moves'
@import './components/sites/sites'
@import './components/assets/assets'
@import './components/oracles/oracles'
.ui-dialog .charsheet .repcontainer .repitem .itemcontrol
.repcontrol_del
float right
width auto
margin 0
height auto
.repcontrol_move
cursor move
width auto
margin 0
height auto
// Roll Templates
@import './roll-templates/template'
@import './legacy/roll-templates'
+15
View File
@@ -0,0 +1,15 @@
mixin btn(opts)
if opts.classes
label(class=`common-btn ${opts.classes}`)
if opts.pure_attr
input.btn-input.hide-element(type=opts.type name=`attr_${opts.attribute}`)
else
if opts.checked
input.btn-input.hide-element(type=opts.type name=`attr_${opts.attribute}_button` checked)
else
input.btn-input.hide-element(type=opts.type name=`attr_${opts.attribute}_button`)
.btn-content(data-i18n=opts.translationId)=opts.text
else
label.common-btn
input.btn-input.hide-element(type=opts.type name=`attr_${opts.attribute}_button`)
.btn-content(data-i18n=opts.translationId)=opts.text
@@ -1,12 +1,11 @@
include ../../data/translations
include ../../data/assets
mixin assetDropdown(assetName, assetObject)
select.sub-dropdown(name=`attr_assetdropdown${assetName}`)
- var defaultTranslation = 'asset-dropdown-default'
option(data-i18n=defaultTranslation value='' disabled='' selected='')=translations[defaultTranslation]
option(data-i18n=defaultTranslation value='' disabled='' selected='')=locals[defaultTranslation]
each asset, key in assets[assetObject]
option(data-i18n=`asset-title-${key}` value=key)=translations[`asset-title-${key}`]
option(data-i18n=`asset-title-${key}` value=key)=locals[`asset-title-${key}`]
mixin ability(asset, number, key)
.flex-container
@@ -23,17 +22,23 @@ mixin ability(asset, number, key)
)
- var translationAbility = `asset-${key}-ability-${number}`
.asset-ability
p(data-i18n=translationAbility)=translations[translationAbility]
p(data-i18n=translationAbility)=locals[translationAbility]
if asset.abilityWriteIn
if asset.abilityWriteIn.number == number
- var translationAbilityWriteIn = `asset-${key}-ability-${number}-write-in`
.asset-ability-write-in(data-i18n=translationAbilityWriteIn)=translations[translationAbilityWriteIn]
.asset-ability-write-in(data-i18n=translationAbilityWriteIn)=locals[translationAbilityWriteIn]
input.border-bottom.no-border(type='text' name=`attr_asset${asset.abilityWriteIn.name}` value='')
if asset.list && number == asset.list.ability
- var currentListItem = 1
ul
while currentListItem <= asset.list.number
- var translationId = `asset-${key}-ability-${number}-list-${currentListItem++}`
li(data-i18n=translationId)=locals[translationId]
mixin write-in-input(key)
.asset-write-in.asset-name(
data-i18n=`asset-write-in-${key}`
)=translations[`asset-write-in-${key}`]
)=locals[`asset-write-in-${key}`]
mixin description(asset, type, key)
if asset.description || asset.writeIn
@@ -57,7 +62,7 @@ mixin description(asset, type, key)
input.border-bottom.no-border(type='text' name='attr_assetspecialityinput' value='')
if asset.description
- var translationDesc = `asset-description-${key}`
.asset-description-text(data-i18n=translationDesc)=translations[translationDesc]
.asset-description-text(data-i18n=translationDesc)=locals[translationDesc]
mixin track(number, name)
.asset-track-wrapper
@@ -73,17 +78,17 @@ mixin track(number, name)
- currentTrack++
mixin combatTalentBuilder
input.asset-combat-talent.hide(type='checkbox' name='attr_assetcombat-talent')
input.asset-combat-talent.hide-element(type='checkbox' name='attr_assetcombat-talent')
.combat-talent.showhide
+assetDropdown('combattalent', 'combatTalents')
each asset, key in assets.combatTalents
input(class=`hide ${key}` type='checkbox' name=`attr_assetcombattalentdiv${key}`)
div(class=`hide ${key}`)
input(class=`hide-element ${key}` type='checkbox' name=`attr_assetcombattalentdiv${key}`)
div(class=`hide-element ${key}`)
if asset.description
.asset-description
- var translationDesc = `asset-description-${key}`
.asset-description-text(data-i18n=translationDesc)=translations[translationDesc]
.asset-description-text(data-i18n=translationDesc)=locals[translationDesc]
.flex-wrapper
each number in [ 1, 2, 3 ]
+ability(asset, number, key)
@@ -92,23 +97,23 @@ mixin combatTalentBuilder
each track in [ 1, 2 ]
- var value = track - 1
.asset-track-box
.asset-track-box-display=translations[`asset-ironclad-track-${track}`]
.asset-track-box-display=locals[`asset-ironclad-track-${track}`]
input(type='radio' name='attr_assettrack_ironclad' value=`${value}`)
mixin companionBuilder
- var assetType = 'companion'
input.asset-companion.hide(type='checkbox' name=`attr_asset${assetType}`)
input.asset-companion.hide-element(type='checkbox' name=`attr_asset${assetType}`)
.companion.showhide
+assetDropdown(assetType, 'companions')
each asset, key in assets.companions
input(class=`hide ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
div(class=`hide ${key}`)
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
div(class=`hide-element ${key}`)
.asset-description
- var translationDesc = `asset-description-${key}`
.asset-write-in.asset-name(data-i18n='asset-companion-name')=translations['asset-companion-name']
.asset-write-in.asset-name(data-i18n='asset-companion-name')=locals['asset-companion-name']
input.border-bottom.no-border(type='text' name='attr_assetname' value='')
.asset-description-text(data-i18n=translationDesc)=translations[translationDesc]
.asset-description-text(data-i18n=translationDesc)=locals[translationDesc]
.flex-wrapper
each ability in [ 1, 2, 3 ]
+ability(asset, ability, key)
@@ -125,13 +130,13 @@ mixin companionBuilder
mixin ritualBuilder
- var assetType = 'ritual'
input.asset-ritual.hide(type='checkbox' name=`attr_asset${assetType}`)
input.asset-ritual.hide-element(type='checkbox' name=`attr_asset${assetType}`)
.ritual.showhide
+assetDropdown(assetType, 'rituals')
each asset, key in assets.rituals
input(class=`hide ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
div(class=`hide ${key}`)
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
div(class=`hide-element ${key}`)
.flex-wrapper
each ability in [ 1, 2, 3 ]
+ability(asset, ability, key)
@@ -140,13 +145,13 @@ mixin ritualBuilder
mixin pathBuilder
- var assetType = 'path'
input.asset-path.hide(type='checkbox' name=`attr_asset${assetType}`)
input.asset-path.hide-element(type='checkbox' name=`attr_asset${assetType}`)
.path.showhide
+assetDropdown(assetType, 'paths')
each asset, key in assets.paths
input(class=`hide ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
div(class=`hide ${key}`)
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
div(class=`hide-element ${key}`)
+description(asset, assetType, key)
.flex-wrapper
each ability in [ 1, 2, 3 ]
@@ -15,32 +15,32 @@ mixin assetTrackBox(parent, value)
mixin abilityView(value)
input(
class=`builder-ability-${value}-text hide`
class=`builder-ability-${value}-text hide-element`
type='checkbox'
name=`attr_builder-ability-${value}-text`
)
div(class=`builder-ability-${value}-text hide`)
div(class=`builder-ability-${value}-text hide-element`)
input.custom-asset-ability(
type='checkbox'
name=`attr_assetcheckbox_builder-ability-${value}`
)
.asset-ability
span.no-border.ability-text(name=`attr_builder-ability-${value}-text-area`)
input(class=`builder-ability-${value}-text-input hide` type='checkbox' name=`attr_builder-ability-${value}-text-input`)
div(class=`builder-ability-${value}-text-input hide`)
input(class=`builder-ability-${value}-text-input hide-element` type='checkbox' name=`attr_builder-ability-${value}-text-input`)
div(class=`builder-ability-${value}-text-input hide-element`)
input.custom-asset-ability(type='checkbox' name=`attr_assetcheckbox_builder-ability-${value}`)
.asset-ability
span.no-border.ability-text(name=`attr_builder-ability-${value}-text-area`)
input.border-bottom.no-border(type='text' name=`attr_builder-ability-${value}-custom-text-input` value='')
mixin customAssets
input.asset-custom.hide(type='checkbox' name='attr_assetcustom')
input.asset-custom.hide-element(type='checkbox' name='attr_assetcustom')
.asset-custom.showhide
input.asset-builder(type='radio' name='attr_custom-asset-page' value='1' checked='')
span.custom-asset-page(data-i18n='asset-custom-builder-title') Builder
input.asset-view(type='radio' name='attr_custom-asset-page' value='2')
span.custom-asset-page(data-i18n='asset-custom-view-title') View
.asset-builder.hide
.asset-builder.hide-element
.builder-name
input.border-bottom.no-border(
type='text'
@@ -91,7 +91,7 @@ mixin customAssets
data-i18n=`asset-custom-builder-track-dropdown-${track}`
value=`${track}`
)='0 to ' + track
.asset-view.hide
.asset-view.hide-element
.flex-wrapper
.flex-container
span.asset-view-name(name='attr_name')
@@ -99,17 +99,17 @@ mixin customAssets
each totalTitles in [ 0, 1, 2, 3 ]
if totalTitles == 0
input(
class=`builder-titles-${totalTitles} hide`
class=`builder-titles-${totalTitles} hide-element`
type='checkbox'
name=`attr_builder-titles-${totalTitles}`
)
else
input(
class=`builder-titles-${totalTitles} hide`
class=`builder-titles-${totalTitles} hide-element`
type='checkbox'
name=`attr_builder-titles-${totalTitles}`
)
div(class=`builder-titles-${totalTitles} hide`)
div(class=`builder-titles-${totalTitles} hide-element`)
- var currentTitle = 1
while currentTitle <= totalTitles
+builderTitles(totalTitles, currentTitle++)
@@ -124,17 +124,17 @@ mixin customAssets
each dropdownNumber in [ 0, 1, 2, 3, 4, 5, 6, 7]
if dropdownNumber == 0
input(
class=`track-dropdown-${dropdownNumber} hide`
class=`track-dropdown-${dropdownNumber} hide-element`
type='checkbox'
name=`attr_track-dropdown-${dropdownNumber}`
)
else
input(
class=`track-dropdown-${dropdownNumber} hide`
class=`track-dropdown-${dropdownNumber} hide-element`
type='checkbox'
name=`attr_track-dropdown-${dropdownNumber}`
)
div(class=`track-dropdown-${dropdownNumber} hide`)
div(class=`track-dropdown-${dropdownNumber} hide-element`)
.asset-track-wrapper.custom-track
- var currentBox = 0
while currentBox <= dropdownNumber
@@ -1,4 +1,3 @@
include ../../data/translations
include ./asset-custom
include ./asset-builder
@@ -16,10 +15,10 @@ mixin assets()
value=''
disabled=''
selected=''
)=translations[defaultDropdown]
)=locals[defaultDropdown]
each value in types
- var translationValue = `asset-type-${value}`
option(data-i18n=translationValue value=value)=translations[translationValue]
option(data-i18n=translationValue value=value)=locals[translationValue]
+companionBuilder
+pathBuilder
+combatTalentBuilder
@@ -0,0 +1,301 @@
input[type="checkbox"].showhide:checked ~ div.showhide,
input[type="checkbox"].asset-companion:checked ~ div.companion,
input[type="checkbox"].asset-path:checked ~ div.path,
input[type="checkbox"].asset-combat-talent:checked ~ div.combat-talent,
input[type="checkbox"].asset-ritual:checked ~ div.ritual,
input[type="checkbox"].asset-custom:checked ~ div.asset-custom
show-hide()
input[type="checkbox"].cave-lion:checked ~ div.cave-lion,
input[type="checkbox"].giant-spider:checked ~ div.giant-spider,
input[type="checkbox"].hawk:checked ~ div.hawk,
input[type="checkbox"].horse:checked ~ div.horse,
input[type="checkbox"].hound:checked ~ div.hound,
input[type="checkbox"].kindred:checked ~ div.kindred,
input[type="checkbox"].mammoth:checked ~ div.mammoth,
input[type="checkbox"].owl:checked ~ div.owl,
input[type="checkbox"].raven:checked ~ div.raven,
input[type="checkbox"].young-wyvern:checked ~ div.young-wyvern,
input[type="checkbox"].alchemist:checked ~ div.alchemist,
input[type="checkbox"].animal-kin:checked ~ div.animal-kin,
input[type="checkbox"].banner-sworn:checked ~ div.banner-sworn,
input[type="checkbox"].battle-scarred:checked ~ div.battle-scarred,
input[type="checkbox"].blade-bound:checked ~ div.blade-bound,
input[type="checkbox"].bonded:checked ~ div.bonded,
input[type="checkbox"].dancer:checked ~ div.dancer,
input[type="checkbox"].devotant:checked ~ div.devotant,
input[type="checkbox"].empowered:checked ~ div.empowered,
input[type="checkbox"].fortune-hunter:checked ~ div.fortune-hunter,
input[type="checkbox"].herbalist:checked ~ div.herbalist,
input[type="checkbox"].honorbound:checked ~ div.honorbound,
input[type="checkbox"].improviser:checked ~ div.improviser,
input[type="checkbox"].infiltrator:checked ~ div.infiltrator,
input[type="checkbox"].loyalist:checked ~ div.loyalist,
input[type="checkbox"].masked:checked ~ div.masked,
input[type="checkbox"].oathbreaker:checked ~ div.oathbreaker,
input[type="checkbox"].outcast:checked ~ div.outcast,
input[type="checkbox"].pretender:checked ~ div.pretender,
input[type="checkbox"].revenant:checked ~ div.revenant,
input[type="checkbox"].rider:checked ~ div.rider,
input[type="checkbox"].ritualist:checked ~ div.ritualist,
input[type="checkbox"].shadow-kin:checked ~ div.shadow-kin,
input[type="checkbox"].sighted:checked ~ div.sighted,
input[type="checkbox"].slayer:checked ~ div.slayer,
input[type="checkbox"].spirit-bound:checked ~ div.spirit-bound,
input[type="checkbox"].storyweaver:checked ~ div.storyweaver,
input[type="checkbox"].trickster:checked ~ div.trickster,
input[type="checkbox"].veteran:checked ~ div.veteran,
input[type="checkbox"].waterborn:checked ~ div.waterborn,
input[type="checkbox"].wayfinder:checked ~ div.wayfinder,
input[type="checkbox"].weapon-master:checked ~ div.weapon-master,
input[type="checkbox"].wildblood:checked ~ div.wildblood,
input[type="checkbox"].wright:checked ~ div.wright,
input[type="checkbox"].archer:checked ~ div.archer,
input[type="checkbox"].berserker:checked ~ div.berserker,
input[type="checkbox"].brawler:checked ~ div.brawler,
input[type="checkbox"].cutthroat:checked ~ div.cutthroat,
input[type="checkbox"].duelist:checked ~ div.duelist,
input[type="checkbox"].fletcher:checked ~ div.fletcher,
input[type="checkbox"].ironclad:checked ~ div.ironclad,
input[type="checkbox"].long-arm:checked ~ div.long-arm,
input[type="checkbox"].shield-bearer:checked ~ div.shield-bearer,
input[type="checkbox"].skirmisher:checked ~ div.skirmisher,
input[type="checkbox"].slinger:checked ~ div.slinger,
input[type="checkbox"].sunderer:checked ~ div.sunderer,
input[type="checkbox"].swordmaster:checked ~ div.swordmaster,
input[type="checkbox"].thunder-bringer:checked ~ div.thunder-bringer,
input[type="checkbox"].augur:checked ~ div.augur,
input[type="checkbox"].awakening:checked ~ div.awakening,
input[type="checkbox"].bind:checked ~ div.bind,
input[type="checkbox"].communion:checked ~ div.communion,
input[type="checkbox"].divination:checked ~ div.divination,
input[type="checkbox"].invoke:checked ~ div.invoke,
input[type="checkbox"].keen:checked ~ div.keen,
input[type="checkbox"].leech:checked ~ div.leech,
input[type="checkbox"].lightbearer:checked ~ div.lightbearer,
input[type="checkbox"].scry:checked ~ div.scry,
input[type="checkbox"].shadow-walk:checked ~ div.shadow-walk,
input[type="checkbox"].sway:checked ~ div.sway,
input[type="checkbox"].talisman:checked ~ div.talisman,
input[type="checkbox"].tether:checked ~ div.tether,
input[type="checkbox"].totem:checked ~ div.totem,
input[type="checkbox"].visage:checked ~ div.visage,
input[type="checkbox"].ward:checked ~ div.ward
display block
show-hide()
select
&.path-dropdown
option[value="alchemist"]
& ~ .alchemist
display flex
show-hide()
input[type="radio"].asset-builder:checked ~ div.asset-builder,
input[type="radio"].asset-view:checked ~ div.asset-view
display block
show-hide()
input[type="checkbox"].builder-titles-1:checked ~ div.builder-titles-1,
input[type="checkbox"].builder-titles-2:checked ~ div.builder-titles-2,
input[type="checkbox"].builder-titles-3:checked ~ div.builder-titles-3,
input[type="checkbox"].builder-ability-1-text:checked ~ div.builder-ability-1-text,
input[type="checkbox"].builder-ability-1-text-input:checked ~ div.builder-ability-1-text-input,
input[type="checkbox"].builder-ability-2-text:checked ~ div.builder-ability-2-text,
input[type="checkbox"].builder-ability-2-text-input:checked ~ div.builder-ability-2-text-input,
input[type="checkbox"].builder-ability-3-text:checked ~ div.builder-ability-3-text,
input[type="checkbox"].builder-ability-3-text-input:checked ~ div.builder-ability-3-text-input,
input[type="checkbox"].track-dropdown-1:checked ~ div.track-dropdown-1,
input[type="checkbox"].track-dropdown-2:checked ~ div.track-dropdown-2,
input[type="checkbox"].track-dropdown-3:checked ~ div.track-dropdown-3,
input[type="checkbox"].track-dropdown-4:checked ~ div.track-dropdown-4,
input[type="checkbox"].track-dropdown-5:checked ~ div.track-dropdown-5,
input[type="checkbox"].track-dropdown-6:checked ~ div.track-dropdown-6
display flex
show-hide()
div.builder-titles-1,
div.builder-titles-2,
div.builder-titles-3
flex-flow column
margin-bottom 0.3em
.view-title-width
width 22em
margin 0em 1em
.asset-custom
padding 0.2em
background: linear-gradient(to bottom,#ccc 2em,white 2em, white)
> input[type=radio]
margin-left: 4px
div[class|=builder-ability]
align-items: flex-start
div.asset-view,
div.asset-builder
margin-top 0.3em
input[type=checkbox].custom-asset-ability
opacity 1
margin 0px 5px 0 5px
.custom-track
width 20.5em
margin 0 !important
.ability-checkbox,
.build-text
std-font('Crimson Text')
font-size 13px
resize none
height 100px
width 22em
margin 0em 0.5em 0em 0.4em
.ability-text
std-font('Crimson Text')
font-size 14.3px
resize none
height 100px
margin-bottom 0em
width 18em
.builder-dropdown
font-size 14px
.asset-description
margin 0 12px 0px 12px
std-font('Crimson Text')
div
&.asset-ability
width 100%
height 100%
margin 0px 12px 6px 10px
ul
margin-left 15px
margin-bottom 0
&.assets
display block !important
text-align left
.repcontainer
display flex
flex-flow row wrap
padding 0.5em
std-font('Crimson Text')
justify-content space-evenly
.repitem
float left !important
.asset-write-in
margin-bottom 4px
.asset-ability-write-in
margin-top 4px
.asset-write-in
display flex
white-space nowrap
.asset-ability-write-in
display inline
white-space nowrap
.asset
display inline-block
width 320px
max-width 320px
border 2px solid #4C4D4F
margin-bottom 20px
font-size 14.3px
line-height 1.25
input
&.border-bottom
border-bottom-color #4C4D4F
.asset-write-in input,
.asset-ability-write-in input
height 1.4em
width 100%
padding 0
margin-left 5px
margin-top 2px
font-size 15px
font-weight bold
input[type="checkbox"].asset-ability
opacity 1 !important
margin-top 0.2em
.asset-header
background #4C4D4F
color #fff
.asset-type-selection
background #4C4D4F
color #fff
border 0
.asset-type-dropdown
color #fff
background #4C4D4F
width auto
font-size 15px
font-weight bold
text-transform uppercase
-webkit-appearance menulist
margin 6px 4px
.sub-dropdown
-webkit-appearance menulist
width auto
margin 7px 4px
font-weight bold
text-transform uppercase
.asset-track-wrapper
margin 10px
display flex
.asset-track-box
width 100%
display flex
flex-direction column
justify-content center
align-items center
border-radius 0%
background transparent
border 2px solid #4C4D4F
padding 5px
margin-bottom 2px
.asset-track-wrapper-wordy
text-transform uppercase
.asset-track-box
flex-direction row
.asset-track-box-display
font-size 17px
font-weight bold
.ability-top
margin-top 1em
.builder-name
margin-bottom 0.5em
span.custom-asset-page
margin-left 0.3em
margin-right 0.5em
.asset-description-text
margin-top: 0.4em
.asset-name
display inline
.asset-body
font-size 14.3px
line-height 1.25
margin 0 0 4px
@@ -14,10 +14,10 @@ mixin bonds()
p.bond-title NAME:
input.border-bottom.bond-name(type='text' name='attr_bond-name' placeholder='Name')
label.btn.details-btn
input.hide.btn-input(type='checkbox' name='attr_details_button')
input.hide-element.btn-input(type='checkbox' name='attr_details_button')
.btn-content DETAILS
input.hide.show-bond-info(type='checkbox' name='attr_details')
input.hide-element.show-bond-info(type='checkbox' name='attr_details')
.show-bond-info.showhide
.full-width
p.bond-title LOCATION:
@@ -1,47 +1,49 @@
.sheet-bonds-track
.bonds-track
width 437px
margin-left 203px
margin-top 0.5em
.progress-row
grid-template-columns: 0px repeat(10, 43.5px) 110px;
.sheet-bonds
.bonds
margin-bottom 0px
.sheet-bond-component
.bond-component
margin-top 1em
.sheet-bond
.bond
display flex
flex-direction column
justify-content center
align-items center
.sheet-bond-container
.bond-container
border 2px solid #4C4D4F
border-radius 0
margin-bottom 1em
padding 1em
.sheet-bond-notes
.bond-notes
width 98.5%
resize vertical
.sheet-bond-name,
.sheet-bond-location,
.sheet-bond-descriptors
.bond-name,
.bond-location,
.bond-descriptors
border none
border-radius 0em
background transparent
padding 0
padding-left 0.5em
.sheet-bond-descriptors
.bond-descriptors
width 43%
.sheet-bond-location
.bond-location
width 40%
p
&.sheet-bond-title
&.bond-title
text-align left
font-weight bold
margin 0 0 0px
@@ -52,19 +54,19 @@ p
color #4c4d4f
border-radius 0
.sheet-details-btn
.details-btn
display flex
width auto
margin 0.5em 0em 0em 0em
height auto
padding 0
.sheet-bond-name::placeholder,
.sheet-bond-location::placeholder,
.sheet-bond-descriptors::placeholder
.bond-name::placeholder,
.bond-location::placeholder,
.bond-descriptors::placeholder
color #8a8a8a
input[type="checkbox"].sheet-show-bond-info
input[type="checkbox"].show-bond-info
width 4.5em
height 18px
top 0
@@ -73,12 +75,12 @@ input[type="checkbox"].sheet-show-bond-info
padding 2px 4px
&:checked
& ~ div
&.sheet-show-bond-info
&.show-bond-info
display flex
flex-flow row wrap
show-hide()
& ~ span
&.sheet-show-bond-info
&.show-bond-info
border-radius 0
padding 2px 4px
border 1px solid
@@ -86,7 +88,7 @@ input[type="checkbox"].sheet-show-bond-info
color #fff
&:hover
& ~ span
&.sheet-show-bond-info
&.show-bond-info
border-radius 0
padding 2px 4px
background-color #ccc
@@ -94,7 +96,7 @@ input[type="checkbox"].sheet-show-bond-info
transition 0.5s ease
span
&.sheet-show-bond-info
&.show-bond-info
margin-left -4.9em
border-radius 0
padding 2px 4px
@@ -2,14 +2,14 @@
include ../progress/mixins/box
mixin bondsTrack()
div.bonds-track
div
.bonds-track
.progress-row
div
each index in track
select(name=`attr_bond-${index}` class="progress-input")
+progressBox
+progressBoxComplex(`attr_bond-${index}`)
input(
type="text"
class="hide"
class="hide-element"
name="attr_bond-filled"
value="floor((@{bond-0}+@{bond-1}+@{bond-2}+@{bond-3}+@{bond-4}+@{bond-5}+@{bond-6}+@{bond-7}+@{bond-8}+@{bond-9})/4)"
disabled="true"
@@ -1,37 +1,37 @@
.sheet-debility-list
.debility-list
display flex
flex-flow row wrap
justify-content space-evenly
.sheet-debility-component
.debility-component
margin-top 1em
display flex
flex-flow wrap
.sheet-debility-btn
.debility-btn
width 40%
.sheet-severity-track
.severity-track
display flex
margin-top 1em
.sheet-track-child
.track-child
width 100%
.sheet-btn-content
.btn-content
padding 0.4em 0.2em 0.2em 0.2em
align-self center
ul.sheet-debility-body-list
ul.debility-body-list
margin 0em 0.2em 0.3em 1.3em
p.sheet-severity-reduce,
p.sheet-debility-clear
p.severity-reduce,
p.debility-clear
margin-bottom 0.3em
.sheet-debility-group
.debility-group
width 33.33%
.sheet-debility-group-title
.debility-group-title
text-align center
text-transform: uppercase
font-size 14px
@@ -1,9 +1,11 @@
.sheet-misses-track
.misses-track
margin-top 1em
width 47em
margin-left 118px
.progress-row
grid-template-columns: 86px repeat(10, 43.5px) 110px;
.sheet-clear-miss
.clear-miss
display: inline
width: 100%
font-weight: bold
@@ -15,16 +17,16 @@
border: 2px solid #494a4c
cursor: pointer
.sheet-clear-miss:hover
.clear-miss:hover
background-color: #ccc
color: #4C4D4F
transition .5s ease
.sheet-miss-input
.miss-input
margin 0 !important
.sheet-failure-btn-div
.failure-btn-div
display inline
input.sheet-optional-track-failures:checked ~ div.sheet-optional-track-failures
input.optional-track-failures:checked ~ div.optional-track-failures
show-hide(0.3s)
@@ -0,0 +1,30 @@
- var track = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
include ../progress/mixins/box
input.optional-track-failures.hide-element(type='checkbox' name='attr_optional_track_failures' checked)
div.optional-track-failures.showhide
h3.divide(data-i18n='page-summary-failures')=locals['page-summary-failures']
.misses-track
.progress-row
div
label.clear-miss
input(class="clear-miss hide" type="checkbox" name="attr_clear_misses")
div.failure-btn-div(data-i18n='clear-btn')=locals['clear-btn']
each index in track
+progressBoxComplex(`attr_miss_${index}`)
div
label.btn
button(
type="roll"
class='hide'
name="rollMisses"
value="&{template:ironsworn_progress} {{progress_type=Failures}} {{header=@{character_name} <em>Learn From Your Failures</em> }} {{progress=[[@{misses-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}"
)
div.failure-btn-div(data-i18n='failures-learn')=locals['failures-learn']
input(
type="text"
class="hide-element"
name="attr_misses-filled"
value="floor((@{miss-0}+@{miss-1}+@{miss-2}+@{miss-3}+@{miss-4}+@{miss-5}+@{miss-6}+@{miss-7}+@{miss-8}+@{miss-9})/4)"
disabled="true"
)
@@ -11,7 +11,7 @@ include ./tracks
input(
type='radio'
name='attr_momentum'
class='momentum-box-input hide'
class='momentum-box-input hide-element'
value=object.value
checked
)
@@ -19,24 +19,24 @@ include ./tracks
input(
type='radio'
name='attr_momentum'
class='momentum-box-input hide'
class='momentum-box-input hide-element'
value=object.value
)
.momentum-box-back
h3.momentum-box-value=object.text
label.momentum-burn
input(type='checkbox' class='momentum-burn hide' title='Burn Momentum' name='attr_momentumBurn')
input(type='checkbox' class='momentum-burn hide-element' title='Burn Momentum' name='attr_momentumBurn')
.momentum-burn-back BURN
.momentum-status-box
h3.momentum-max MAX
h3.momentum-status-value
span.momentum-status-attr(name='attr_momentum_max')
input(type='text' class='hide' name='attr_momentum_max' value='10')
input(type='text' class='hide-element' name='attr_momentum_max' value='10')
.momentum-status-box
h3.momentum-reset RESET
h3.momentum-status-value
span.momentum-status-attr(name='attr_momentum_reset')
input(type='text' class='hide' name='attr_momentum_reset' value='2')
input(type='text' class='hide-element' name='attr_momentum_reset' value='2')
@@ -1,44 +1,44 @@
.sheet-footer
.footer
margin-top 1em
.sheet-momentum
.momentum
display flex
input[type=checkbox].sheet-momentum-burn:hover ~ div.sheet-momentum-burn-back
input[type=checkbox].momentum-burn:hover ~ div.momentum-burn-back
background-color #ccc
transition: .5s ease;
.sheet-momentum-box-input:hover ~ .sheet-momentum-box-back
.momentum-box-input:hover ~ .momentum-box-back
background: #ccc
transition: .5s ease;
.sheet-momentum-box-input:checked ~ .sheet-momentum-box-back
.momentum-box-input:checked ~ .momentum-box-back
background: #4C4D4F
color: white
transition: .5s ease;
input[type=checkbox].sheet-momentum-burn
input[type=checkbox].momentum-burn
opacity 0
border 0
div.sheet-momentum-burn-back
div.momentum-burn-back
font-weight bold
text-align center
line-height 22px
padding 0em 0.2em
label.sheet-momentum-burn
label.momentum-burn
borderCommon()
padding 0
cursor pointer
margin 0
font-size 1em
.sheet-momentum-box-input
.momentum-box-input
opacity 0
border 0
.sheet-momentum-status-box
.momentum-status-box
display: flex
flex-direction: row
justify-content: center
@@ -48,55 +48,55 @@ label.sheet-momentum-burn
border 2px solid #4c4d4f
padding-left 0.2em
.sheet-momentum-status-value
.momentum-status-value
width auto
font-size 1em
h3.sheet-momentum-max-box,
h3.sheet-momentum-reset-box
h3.momentum-max-box,
h3.momentum-reset-box
display: inline
padding-left: 1em
.sheet-momentum-box-value
.momentum-box-value
font-weight bold
font-size 16px
color inherit
.sheet-momentum-input
.momentum-input
font-weight bold
width 30px
font-size 13px
text-align center
background transparent
.sheet-momentum-box
.momentum-box
cursor pointer
borderCommon()
padding 0
margin 0
.sheet-momentum-dark
.momentum-dark
color white
border: 2px solid #4b4d4f
background: #4b4d4f
width: 100%
.sheet-momentum-max,
.sheet-momentum-reset
.momentum-max,
.momentum-reset
line-height 1.4em
font-size 1em
.sheet-momentum-title
.momentum-title
color white
line-height 1.2em
font-size 1.2em
.sheet-momentum-header
.momentum-header
height 20px
.sheet-sub-header-static
.sub-header-static
margin-top 0.2em
.sheet-momentum-status-attr
.momentum-status-attr
padding 0em 0.2em
@@ -0,0 +1,32 @@
mixin delveTable
.move-table.move-delve-table
.move-delve-row-header
.move-delve-column-stat-header-1 Edge
.move-delve-column-stat-header-2 Shadow
.move-delve-column-stat-header-3 Wits
.move-delve-column-header Weak Hit Result
.oracle-row
.move-delve-stat-column-1 1-45
.move-delve-stat-column-2 1-30
.move-delve-stat-column-3 1-40
.move-delve-column Mark progress and <em>Reveal a Danger.</em>
.oracle-row
.move-delve-stat-column-1 46-65
.move-delve-stat-column-2 31-65
.move-delve-stat-column-3 41-55
.move-delve-column Mark progress.
.oracle-row
.move-delve-stat-column-1 66-75
.move-delve-stat-column-2 66-90
.move-delve-stat-column-3 56-80
.move-delve-column Choose one: Mark progress or <em>Find an Opportunity.</em>
.oracle-row
.move-delve-stat-column-1 76-80
.move-delve-stat-column-2 91-99
.move-delve-stat-column-3 81-99
.move-delve-column Take both: Mark progress and <em>Find an Opportunity.</em>
.oracle-row
.move-delve-stat-column-1 81-100
.move-delve-stat-column-2 100
.move-delve-stat-column-3 100
.move-delve-column Mark progress twice and <em>Reveal a Danger.</em>
@@ -0,0 +1,147 @@
mixin progressRoll(opts, visibility)
button(
type="roll"
title=opts.title
name=`roll_${opts.name}`
class=visibility
value=`&{template:ironsworn_progress} {{header=@{character_name}}} {{progress_name=${locals[opts.title]}}} {{progress=[[?{Filled Progress|0}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}`
)
mixin oracleRoll(opts, visibility)
button(
type="roll"
title=opts.title
name=`roll_${opts.name}`
class=visibility
value=`&{template:${opts.type}} {{header=${locals[opts.title]}}} {{${opts.name}=[[d100]]}}`
)
mixin discoverASiteRoll(opts, visibility)
button(
type="roll"
title=opts.title
name=`roll_${opts.name}`
class=visibility
value=`&{template:ironsworn_moves} {{header=${locals[opts.title]}}} {{${opts.name}=[[2d10kl1]]}}`
)
mixin rarityRoll(opts, visibility)
button(
type="roll"
title=`${locals[opts.title]} Move`
class=visibility
name=`roll_${opts.name}`
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals[opts.title]}}} {{rarityAction=[[d6+${opts.stat}+(?{Modifier|0})]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}} {{rarityDie6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{rarityDie5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{rarityDie1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}}`
)
mixin owlRoll(opts, visibility)
button(
type="roll"
title=`${locals[opts.title]} Move`
class=visibility
name=`roll_${opts.name}`
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals[opts.title]}}} {{action=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{owl=[[?{Owl Companion|No&#44;0|Yes&#44;?{Owl's Health&amp;#124;0&amp;#125;&#125;]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}+(?{Owl Companion})]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}}`
)
mixin delveTheDepthsRoll(opts, visibility)
button(
type="roll"
title=`${locals[opts.title]} Move`
class=visibility
name=`roll_${opts.name}`
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals[opts.title]}}} {{delveTheDepths=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}} {{revealADangerButton=[Reveal A Danger](~@{character_name}|revealADanger_oracle)}} {{findAnOpportunityButton=[Find An Opportunity](~@{character_name}|findAnOpportunity_oracle)}} {{delveTheDepthsTableButton=[Roll on the Table](~@{character_name}|delveTheDepthsTableRoll)}}`
)
mixin delveTheDepthsTableRoll(opts, visibility)
button(
type="roll"
title=`${locals[opts.title]} Move`
class=visibility
name=`roll_${opts.name}TableRoll`
value!=`&{template:ironsworn_oracles} {{header=${locals[opts.title]}}} {{delveTheDepthsTableRoll=[[d100]]}} {{statValue=[[?{Stat|Edge,1|Shadow,2|Wits,3}]]}}`
)
mixin movesRoll(opts, visibility)
button(
type="roll"
title=`${locals[opts.title]} Move`
class=visibility
name=`roll_${opts.name}`
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals[opts.title]}}} {{action=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}}`
)
mixin rollLabel
label.roll-label Roll
block
mixin rollListLabel
label.roll-list-label Roll
block
mixin rollLabelTable
label.roll-label Roll on the Table
block
mixin preview(opts, misc)
if misc.no_title
div
else
div.move-title.move-preview(data-i18n=opts.title)=locals[opts.title]
if opts.roll
div.roll-viewer
if opts.progress
+rollLabel
+progressRoll(opts, 'hide-element')
else if opts.oracle
+rollLabel
+oracleRoll(opts, 'hide-element')
else if opts.rarity
+rollLabel
+rarityRoll(opts, 'hide-element')
else if opts.owl
+rollLabel
+owlRoll(opts, 'hide-element')
else if opts.discover_a_site
+rollLabel
+discoverASiteRoll(opts, 'hide-element')
else if opts.delve_the_depths
+rollLabel
+delveTheDepthsRoll(opts, 'hide-element')
else
+rollLabel
+movesRoll(opts, 'hide-element')
.move-description
block
if opts.delve_the_depths
+rollLabelTable
+delveTheDepthsTableRoll(opts, 'hide-element')
.oracle-footer.move-page-footer=opts.page
mixin container(opts, misc)
if misc.visibility
div.move-visible
+preview(opts, misc)
block
else
input(type='radio' name='attr_move_preview' class=`${opts.class} hide-element` value=opts.radio)
div(class=`${opts.class} showhide`)
+preview(opts, misc)
block
mixin listButton(opts)
if opts.no_quick_roll
|
else
.button-container
if opts.progress
+progressRoll(opts, 'roll-show')
else if opts.oracle
+oracleRoll(opts, 'roll-show')
else if opts.rarity
+rarityRoll(opts, 'roll-show')
else if opts.owl
+owlRoll(opts, 'roll-show')
else if opts.discover_a_site
+discoverASiteRoll(opts, 'roll-show')
else
+movesRoll(opts, 'roll-show')
@@ -3,7 +3,6 @@ include ./container
include ./oracle-table
include ./standalone-tables
include ../../../data/oracles
include ../../../data/translations
mixin moveBuilder(opts, misc)
+container(opts, misc)
@@ -11,7 +10,7 @@ mixin moveBuilder(opts, misc)
if row.list
ul
each item in row.list
li(data-i18n=item)!=translations[item]
li(data-i18n=item)!=locals[item]
else if row.table
+oracleTable(oracles.moves[row.table.group].oracles[row.table.name], 'moves', row.table.group)
else if row.depths_table
@@ -21,7 +20,7 @@ mixin moveBuilder(opts, misc)
else if row.delve_the_depths
+delveTheDepths
else if row.h6
h6(data-i18n=row.h6)!=translations[row.h6]
h6(data-i18n=row.h6)!=locals[row.h6]
else
p(data-i18n=row.p)!=translations[row.p]
p(data-i18n=row.p)!=locals[row.p]
@@ -2,10 +2,10 @@ mixin oracleTable(oracle, system, key)
- var header = oracle.name.replace(/_/g, ' ')
div(class=`${oracle.class}`)
label.roll-label.embedded-btn Roll Oracle
button.hide(
button.hide-element(
type='roll'
title=`@{roll_${oracle.id}_oracle}`
name=`roll_${oracle.id}_oracle`
title=`@{roll_${oracle.roll_id}_oracle}`
name=`roll_${oracle.roll_id}_oracle`
value=`&{template:${system}_oracles} {{header=${header}}} {{${key}${oracle.roll_id}=[[${oracle.dice}]]}}`
)
.oracle-table
@@ -2,29 +2,29 @@ mixin askTheOracle
.oracle-table
.oracle-row
.button-container-preview
button(type='roll' title='@{rollalmostcertain}' name='rollalmostcertain' value='&{template:ironsworn_oracles} {{header=Almost Certain}} {{almostCertain=[[d100]]}}')
button.roll-show(type='roll' title='@{rollalmostcertain}' name='rollalmostcertain' value='&{template:ironsworn_oracles} {{header=Almost Certain}} {{almostCertain=[[d100]]}}')
span.oracle-roll.preview-roll 11 or greater
span.oracle-result
| Almost
| Certain
.oracle-row
.button-container-preview
button(type='roll' title='@{rolllikely}' name='rolllikely' value='&{template:ironsworn_oracles} {{header=Likely}} {{likely=[[d100]]}}')
button.roll-show(type='roll' title='@{rolllikely}' name='rolllikely' value='&{template:ironsworn_oracles} {{header=Likely}} {{likely=[[d100]]}}')
span.oracle-roll.preview-roll 26 or greater
span.oracle-result Likely
.oracle-row
.button-container-preview
button(type='roll' title='@{rollfiftyfifty}' name='rollfiftyfifty' value='&{template:ironsworn_oracles} {{header=50/50}} {{fiftyFifty=[[d100]]}}')
button.roll-show(type='roll' title='@{rollfiftyfifty}' name='rollfiftyfifty' value='&{template:ironsworn_oracles} {{header=50/50}} {{fiftyFifty=[[d100]]}}')
span.oracle-roll.preview-roll 51 or greater
span.oracle-result 50/50
.oracle-row
.button-container-preview
button(type='roll' title='@{rollunlikely}' name='rollunlikely' value='&{template:ironsworn_oracles} {{header=Unlikely}} {{unlikely=[[d100]]}}')
button.roll-show(type='roll' title='@{rollunlikely}' name='rollunlikely' value='&{template:ironsworn_oracles} {{header=Unlikely}} {{unlikely=[[d100]]}}')
span.oracle-roll.preview-roll 76 or greater
span.oracle-result Unlikely
.oracle-row
.button-container-preview
button(type='roll' title='@{rollsmallchance}' name='rollsmallchance' value='&{template:ironsworn_oracles} {{header=Small Chance}} {{smallChance=[[d100]]}}')
button.roll-show(type='roll' title='@{rollsmallchance}' name='rollsmallchance' value='&{template:ironsworn_oracles} {{header=Small Chance}} {{smallChance=[[d100]]}}')
span.oracle-roll.preview-roll 91 or greater
span.oracle-result
| Small
@@ -1,67 +1,66 @@
include ../../data/group-list
include ../../data/scroll-list
include ../../data/move-list
include ../../data/translations
include ./mixins/move-builder
//- Search Bar
input(type='radio' class='hide full-move-list' name='attr_move_view' value='1' checked)
input(type='radio' class='hide-element full-move-list' name='attr_move_view' value='1' checked)
.full-move-list.showhide
//- .search-bar
//- input(type='text' class='search-bar' name='attr_move_search' placeholder='Search')
//- label.clear-search CLEAR
//- input(type='checkbox' class='hide' name='attr_clear_search')
//- input(type='checkbox' class='hide-element' name='attr_clear_search')
//- List of Moves
.move-container
input(type='radio' class='hide' name='attr_selected_move')
input(type='radio' class='hide-element' name='attr_selected_move')
each group in moveGroups
if group.optional
input(type='checkbox' class=`optional-move-${group.optional} hide` name=`attr_optional_move_${group.optional}` checked)
div(class=`move-group optional-move-${group.optional} hide`)
input(type='checkbox' class=`optional-move-${group.optional} hide-element` name=`attr_optional_move_${group.optional}` checked)
div(class=`move-group optional-move-${group.optional} hide-element`)
.move-group-title
h3(data-i18n=group.title)=translations[group.title]
h3(data-i18n=group.title)=locals[group.title]
each move in group.moves
.move-list
+listButton(moveList[move.value])
label.move
input(type='radio' class='hide selected-move' name='attr_selected_move' value=move.value)
div.move-name(data-i18n=move.name)=translations[move.name]
input(type='radio' class='hide-element selected-move' name='attr_selected_move' value=move.value)
div.move-name(data-i18n=move.name)=locals[move.name]
else
.move-group
.move-group-title
h3(data-i18n=group.title)=translations[group.title]
h3(data-i18n=group.title)=locals[group.title]
each move in group.moves
.move-list
+listButton(moveList[move.value])
label.move
input(type='radio' class='hide selected-move' name='attr_selected_move' value=move.value)
div.move-name(data-i18n=move.name)=translations[move.name]
input(type='radio' class='hide-element selected-move' name='attr_selected_move' value=move.value)
div.move-name(data-i18n=move.name)=locals[move.name]
//- Move Details
input(type='radio' class='hide move-preview' name='attr_move_view' value='2')
input(type='radio' class='hide-element move-preview' name='attr_move_view' value='2')
.move-preview.showhide
.preview-bar
//- .search-preview-bar
//- input(type='text' class='search-preview-bar' name='attr_move_search' placeholder='Search')
//- label.clear-search CLEAR
//- input(type='checkbox' class='hide' name='attr_clear_search')
//- input(type='checkbox' class='hide-element' name='attr_clear_search')
.close-bar
label.close-preview CLOSE PREVIEW
input(type='checkbox' class='hide' name='attr_close_move_preview')
input(type='checkbox' class='hide-element' name='attr_close_move_preview')
.preview-container
.move-scroll-list
each group in moveGroupsScroll
.move-group-scroll
.move-group-title
h3(data-i18n=group.title)=translations[group.title]
h3(data-i18n=group.title)=locals[group.title]
each move in group.moves
.move-list
label.move
input(type='radio' class='hide' name='attr_selected_move' value=move.value)
//- input(type='checkbox' class='hide move-highlight' name=`attr_${move.value}_highlight`)
div.move-name(data-i18n=move.name)=translations[move.name]
input(type='radio' class='hide-element' name='attr_selected_move' value=move.value)
//- input(type='checkbox' class='hide-element move-highlight' name=`attr_${move.value}_highlight`)
div.move-name(data-i18n=move.name)=locals[move.name]
//- Move Previews
.move-preview-container
@@ -0,0 +1,375 @@
div
&.search-bar
display flex
justify-content center
width 100%
margin 1em 0em 0.5em 0em
&.preview-bar
justify-content space-between
width 100%
display flex
margin 1em 0em 0.5em 0em
&.search-preview-bar
display flex
width auto
&.move-nav-content
padding 0.2em
width 100%
input
&.search-preview-bar
width 17.6em
borderCommon()
border-radius 0
&:focus
outline 3px solid #fd0
outline-offset 0
box-shadow inset 0 0 0 2px
&.search-bar
width 50%
borderCommon()
&:focus
outline 3px solid #fd0
outline-offset 0
box-shadow inset 0 0 0 2px
&.table-btn
&:checked
& ~ div
&.move-nav-content
background #4c4d4f
color #fff
transition 0.5s ease
.preview-container
display flex
justify-content space-between
font-size 1em
flex-flow row
font-weight normal
height auto
margin-top 1em
.move-scroll-list
width 21.9em
overflow auto
borderCommon()
padding 0
height 50em
.move-container
flex-wrap wrap
flex-direction column
justify-content space-between
height 45em
margin-top 1em
display flex
font-size 1em
font-weight normal
align-content space-between
.move-scroll-list
overflow auto
borderCommon()
padding 1em
width max-content
.move
margin 0em
color #4c4d4f
display flex
padding 0
.move-group-title
background #4c4d4f
h3
color #fff
.move-name
width 100%
borderCommon()
.move-highlight
&:checked
& ~ .move-name
background #fd0
outline-offset 0
box-shadow inset 0 0 0 2px
.roll-show
padding 0 !important
font-size 20px !important
margin 0 !important
height auto
&:hover
color white
.move-list
padding 0
display flex
label
cursor pointer
div
font-weight 600
font-size 14px
text-align center
margin 0 0 0px
padding 0.1em
text-transform none
&:hover
transition 0.3s ease
background #606060 !important
color #fff
&:nth-child(2n
& + 1)
background-color #ddd
.move-column
display flex
flex-direction column
margin-right 10px
span
&.move-result
width 36em
&.preview-move-roll
width 60%
margin-left 1em
.move-group
borderCommon()
box-sizing border-box
width 30%
margin 0.3em
height fit-content
height -moz-fit-content
.move-group-scroll
borderCommon()
box-sizing border-box
height fit-content
height -moz-fit-content
.move-box
&:nth-child(n
& + 2)
margin-top 10px
.move-title
background-color #4C4D4F
color #fff
border-bottom 1px solid #4C4D4F
font-size 1.4em
font-weight bold
padding 0.2em 0.5em 0.1em 0.7em
text-transform uppercase
width 11.7em
.move-preview
width auto
.move-page-footer
text-align right !important
padding-right 1em
.move-preview-container
width 62%
p
font-size 15px
margin 0
ul
margin 2px 0px 5px 25px
font-size 15px
li
font-size 15px
.move-show
display inline-flex
font-size 1em
margin 0em
padding 0.3em
&:hover
background #969696
cursor pointer
transition 0.5s ease
.column-wrap
flex-flow column wrap
width 22.5em
.move-delve-table
width auto !important
.move-description
std-font('Crimson Text')
padding 1em
borderCommon()
p
margin-bottom 0.3em
.move-table
border none
width 30.5em
font-size 12px
.move-roll
width 18%
.move-footer
background-color #434b4d
color #fff
line-height 0.9em
font-size 0.9em
std-font('Crimson Text')
font-variant small-caps
font-weight bold
text-align left
padding 0.5rem
.close-preview
width 100%
height auto
margin 0
font-weight bold
font-size 14px
padding 0.2em 0.2em 0.2em 0.2em
border 2px solid #494a4c
cursor pointer
text-align center
&:hover
background-color #ccc
color #4c4d4f
transition 0.5s ease
.clear-search
width fit-content
width -moz-fit-content
height auto
margin 0
font-weight bold
font-size 14px
padding 0.2em 0.2em 0.2em 0.2em
border 2px solid #494a4c
cursor pointer
&:hover
background-color #ccc
color #4c4d4f
transition 0.5s ease
.selected-move
z-index 3
&:checked
& ~ .move-name
background #434b4d !important
color #fff !important
input.move-preview:checked ~ div.move-preview,
input.full-move-list:checked ~ div.full-move-list
show-hide()
input[type=radio].face-danger:checked ~ div.face-danger,
input[type=radio].secure-an-advantage:checked ~ div.secure-an-advantage,
input[type=radio].gather-information:checked ~ div.gather-information,
input[type=radio].heal:checked ~ div.heal,
input[type=radio].resupply:checked ~ div.resupply,
input[type=radio].make-camp:checked ~ div.make-camp,
input[type=radio].undertake-a-journey:checked ~ div.undertake-a-journey,
input[type=radio].reach-your-destination:checked ~ div.reach-your-destination,
input[type=radio].compel:checked ~ div.compel,
input[type=radio].sojourn:checked ~ div.sojourn,
input[type=radio].draw-the-circle:checked ~ div.draw-the-circle,
input[type=radio].forge-a-bond:checked ~ div.forge-a-bond,
input[type=radio].test-your-bond:checked ~ div.test-your-bond,
input[type=radio].aid-your-ally:checked ~ div.aid-your-ally,
input[type=radio].write-your-epilogue:checked ~ div.write-your-epilogue,
input[type=radio].enter-the-fray:checked ~ div.enter-the-fray,
input[type=radio].strike:checked ~ div.strike,
input[type=radio].clash:checked ~ div.clash,
input[type=radio].turn-the-tide:checked ~ div.turn-the-tide,
input[type=radio].end-the-fight:checked ~ div.end-the-fight,
input[type=radio].battle:checked ~ div.battle,
input[type=radio].endure-harm:checked ~ div.endure-harm,
input[type=radio].face-death:checked ~ div.face-death,
input[type=radio].companion-endure-harm:checked ~ div.companion-endure-harm,
input[type=radio].endure-stress:checked ~ div.endure-stress,
input[type=radio].face-desolation:checked ~ div.face-desolation,
input[type=radio].out-of-supply:checked ~ div.out-of-supply,
input[type=radio].face-a-setback:checked ~ div.face-a-setback,
input[type=radio].swear-an-iron-vow:checked ~ div.swear-an-iron-vow,
input[type=radio].fulfill-your-vow:checked ~ div.fulfill-your-vow,
input[type=radio].reach-a-milestone:checked ~ div.reach-a-milestone,
input[type=radio].forsake-your-vow:checked ~ div.forsake-your-vow,
input[type=radio].advance:checked ~ div.advance,
input[type=radio].pay-the-price:checked ~ div.pay-the-price,
input[type=radio].ask-the-oracle:checked ~ div.ask-the-oracle,
input[type=radio].discover-a-site:checked ~ div.discover-a-site,
input[type=radio].delve-the-depths:checked ~ div.delve-the-depths,
input[type=radio].find-an-opportunity:checked ~ div.find-an-opportunity,
input[type=radio].reveal-a-danger:checked ~ div.reveal-a-danger,
input[type=radio].check-your-gear:checked ~ div.check-your-gear,
input[type=radio].locate-your-objective:checked ~ div.locate-your-objective,
input[type=radio].escape-the-depths:checked ~ div.escape-the-depths,
input[type=radio].reveal-a-danger-alt:checked ~ div.reveal-a-danger-alt,
input[type=radio].wield-a-rarity:checked ~ div.wield-a-rarity,
input[type=radio].mark-your-failure:checked ~ div.mark-your-failure,
input[type=radio].learn-from-your-failures:checked ~ div.learn-from-your-failures,
input[type=radio].advance-a-threat:checked ~ div.advance-a-threat,
input[type=radio].take-a-hiatus:checked ~ div.take-a-hiatus
show-hide()
.move-nav-child
display flex
width auto
height 1.3em
padding 0
margin 0.2em 0em 0.2em 0em
text-align center
::-webkit-scrollbar
-webkit-appearance none
width 7px
::-webkit-scrollbar-thumb
border-radius 4px
background-color rgba(0,0,0,0.5)
box-shadow 0 0 1px rgba(255,255,255,0.5)
.move-delve-column-stat-header,
.move-delve-stat-column
width 16%
.move-delve-column-stat-header-1,
.move-delve-stat-column-1
width 17%
.move-delve-column-stat-header-2,
.move-delve-stat-column-2
width 18%
.move-delve-column-stat-header-3,
.move-delve-stat-column-3
width 15%
.move-delve-column-header,
.move-delve-column
width 50%
.move-delve-column-stat-header,
.move-delve-column-stat-header-1,
.move-delve-column-stat-header-2,
.move-delve-column-stat-header-3,
.move-delve-column-header
font-weight bold
.move-delve-row-header
padding 0px 5px 0px 5px
display flex
height auto
border-bottom 2px solid #4c4d4f
.embedded-btn
padding-top 0.2em !important
std-font()
input.optional-move-failures:checked ~ div.optional-move-failures,
input.optional-move-sites:checked ~ div.optional-move-sites,
input.optional-move-threat:checked ~ div.optional-move-threat,
input.optional-move-rarity:checked ~ div.optional-move-rarity
display block
@@ -1,5 +1,4 @@
include ../../data/nav
include ../../data/translations
mixin navBar(sheetType)
div.nav-bar
@@ -11,21 +10,21 @@ mixin navBar(sheetType)
div.nav-row
each page in row.pages
if page.optional
input(type='checkbox' class=`optional-nav-${page.optional} hide` name=`attr_optional_nav_${page.optional}` checked)
input(type='checkbox' class=`optional-nav-${page.optional} hide-element` name=`attr_optional_nav_${page.optional}` checked)
div(class=`nav-child optional-nav-${page.optional} showhide`)
label.page-label
if page.checked
input(type='radio' name=`attr_${sheetType}_page_button` class='hide page-button' value=page.id checked)
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id checked)
else
input(type='radio' name=`attr_${sheetType}_page_button` class='hide page-button' value=page.id)
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id)
- var translation = `nav-${page.text}`
div.page-button-back(data-i18n=translation)=translations[translation]
div.page-button-back(data-i18n=translation)=locals[translation]
else
div.nav-child
label.page-label
if page.checked
input(type='radio' name=`attr_${sheetType}_page_button` class='hide page-button' value=page.id checked)
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id checked)
else
input(type='radio' name=`attr_${sheetType}_page_button` class='hide page-button' value=page.id)
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id)
- var translation = `nav-${page.text}`
div.page-button-back(data-i18n=translation)=translations[translation]
div.page-button-back(data-i18n=translation)=locals[translation]
@@ -1,4 +1,4 @@
.sheet-nav-child
.nav-child
borderCommon()
width 100%
text-align-last center
@@ -11,34 +11,34 @@
background #ccc
transition 0.5s ease
.sheet-page-button-back
.page-button-back
padding 0.1em 0em 0.1em 0em
font-weight 600
.sheet-page-button
.page-button
&:checked
& ~ div
&.sheet-page-button-back
&.page-button-back
background #4c4d4f
color #fff
transition 0.5s ease
.sheet-summary
.summary
margin-top 1em
.sheet-nav-row
.nav-row
display flex
label.sheet-page-label
label.page-label
text-align center
div.sheet-optional-nav-sites
div.optional-nav-sites
width 0
margin 0
border 0
transition 0.5s ease
input.sheet-optional-nav-sites:checked ~ div.sheet-optional-nav-sites
input.optional-nav-sites:checked ~ div.optional-nav-sites
show-hide(0.3s)
width 100%
borderCommon()
@@ -1,4 +1,4 @@
.sheet-note-area
.note-area
&:focus
outline 3px solid #ffdd00
outline-offset 0
@@ -3,7 +3,7 @@ include ../moves/mixins/move-builder
mixin oracleLabel(type, name, id)
label.common-btn.oracle-btn
input.hide.btn-input(
input.hide-element.btn-input(
type='radio'
title=`@{oracle_${type}_button}`
name=`attr_oracle_${type}_button`
@@ -27,6 +27,7 @@ mixin oracleRollGroup(group, type, key)
- var sub_two = oracle.sub_oracles[1]
button(
type='roll'
class='oracle-roll'
title=`@{roll_${id}_oracle}`
name=`roll_${id}_oracle`
value=`&{template:${type}_oracles} {{header=${header}}} {{${key}${oracle.roll_id}=[[${oracle.dice}]]}} {{${key}${sub_one.roll_id}=[[${sub_one.dice}]]}} {{${key}${sub_two.roll_id}=[[${sub_two.dice}]]}}`
@@ -37,6 +38,7 @@ mixin oracleRollGroup(group, type, key)
.button-container
button(
type='roll'
class='oracle-roll'
title=`@{roll_${id}_oracle}`
name=`roll_${id}_oracle`
value=`&{template:${type}_oracles} {{header=${header}}} {{${key}${oracle.roll_id}=[[${oracle.dice}]]}}`
@@ -47,36 +49,36 @@ mixin oracleBuilder(opts, type, key)
- var id = opts.roll_id
- var oracleName = `${key}-${opts.name}`
- var oracleClass = oracleName.replace(/_/g, '-')
input(class=`${oracleClass} hide` type='radio' name=`attr_oracle_${type}` value=`${key}${id}`)
input(class=`${oracleClass} hide-element` type='radio' name=`attr_oracle_${type}` value=`${key}${id}`)
div(class=`${oracleClass} showhide`)
.oracle-title.oracle-table-preview=opts.name.replace(/_/g, ' ')
if opts.oracle_move
+moveBuilder(moveList[opts.name], { visibility: true, no_title: true })
else if opts.oracle_group === '2'
.oracle-table.sheet-flex-table
.oracle-table.flex-table
each sub_oracle in opts.sub_oracles
.sheet-oracle-sub-column
.oracle-sub-column
each row in sub_oracle.rows
.oracle-row
span.oracle-roll=row.roll
span.oracle-result!=row.result
else
if opts.columns === '2'
.oracle-table.sheet-oracle-table-2-column
.oracle-table.oracle-table-2-column
each row in opts.rows
.oracle-row.oracle-row-2
span.oracle-roll=row.roll
span.oracle-result!=row.result
else if opts.columns === '3'
.oracle-table.sheet-oracle-table-3-column
.oracle-table.oracle-table-3-column
each row in opts.rows
.oracle-row.oracle-row-3
span.oracle-roll=row.roll
span.oracle-result!=row.result
else if opts.columns === '4'
.oracle-table.sheet-oracle-table-4-column
.oracle-table.oracle-table-4-column
each row in opts.rows
.oracle-row.oracle-row-4
span.oracle-roll=row.roll
@@ -0,0 +1,208 @@
column-wrap(height)
display: flex;
flex-flow: column wrap;
height: height
input.oracle-ironsworn:checked ~ div.oracle-ironsworn,
input.oracle-ironsworn:checked ~ div.oracle-ironsworn,
input.oracle-delve:checked ~ div.oracle-delve
show-hide(0.7s)
.oracle-btn
margin 0
width 100%
.oracle-name
text-transform capitalize
.oracles
display: flex
flex-wrap: wrap
flex-direction: column
.oracle
margin: 0em
color: #4C4D4F
display: flex
input[type=radio].plot-action:checked ~ div.plot-action,
input[type=radio].plot-theme:checked ~ div.plot-theme,
input[type=radio].location-region:checked ~ div.location-region,
input[type=radio].location-location:checked ~ div.location-location,
input[type=radio].location-coastal-waters-location:checked ~ div.location-coastal-waters-location,
input[type=radio].location-descriptor:checked ~ div.location-descriptor,
input[type=radio].location-settlement-name:checked ~ div.location-settlement-name,
input[type=radio].location-quick-settlement-name:checked ~ div.location-quick-settlement-name,
input[type=radio].plot-settlement-trouble:checked ~ div.plot-settlement-trouble,
input[type=radio].character-role:checked ~ div.character-role,
input[type=radio].character-goal:checked ~ div.character-goal,
input[type=radio].character-descriptor:checked ~ div.character-descriptor,
input[type=radio].names-ironlander:checked ~ div.names-ironlander,
input[type=radio].names-elf:checked ~ div.names-elf,
input[type=radio].names-giant:checked ~ div.names-giant,
input[type=radio].names-varou:checked ~ div.names-varou,
input[type=radio].names-troll:checked ~ div.names-troll,
input[type=radio].plot-combat-actions:checked ~ div.plot-combat-actions,
input[type=radio].plot-mystic-backlash:checked ~ div.plot-mystic-backlash,
input[type=radio].plot-major-plot-twist:checked ~ div.plot-major-plot-twist,
input[type=radio].plot-challenge-rank:checked ~ div.plot-challenge-rank,
input[type=radio].fate-pay-the-price:checked ~ div.fate-pay-the-price,
input[type=radio].fate-ask-the-oracle:checked ~ div.fate-ask-the-oracle,
input[type=radio].endure-harm:checked ~ div.endure-harm,
input[type=radio].endure-stress:checked ~ div.endure-stress,
input[type=radio].feature-aspect:checked ~ div.feature-aspect,
input[type=radio].feature-focus:checked ~ div.feature-focus,
input[type=radio].site-name-format:checked ~ div.site-name-format,
input[type=radio].site-name-description:checked ~ div.site-name-description,
input[type=radio].site-name-detail:checked ~ div.site-name-detail,
input[type=radio].site-name-namesake:checked ~ div.site-name-namesake,
input[type=radio].site-name-place:checked ~ div.site-name-place,
input[type=radio].site-nature-theme:checked ~ div.site-nature-theme,
input[type=radio].site-nature-domain:checked ~ div.site-nature-domain,
input[type=radio].character-disposition:checked ~ div.character-disposition,
input[type=radio].character-activity:checked ~ div.character-activity,
input[type=radio].monstrosity-size:checked ~ div.monstrosity-size,
input[type=radio].monstrosity-primary-form:checked ~ div.monstrosity-primary-form,
input[type=radio].monstrosity-characteristics:checked ~ div.monstrosity-characteristics,
input[type=radio].monstrosity-abilities:checked ~ div.monstrosity-abilities,
input[type=radio].trap-event:checked ~ div.trap-event,
input[type=radio].trap-component:checked ~ div.trap-component,
input[type=radio].combat-event-method:checked ~ div.combat-event-method,
input[type=radio].combat-event-target:checked ~ div.combat-event-target,
input[type=radio].threat-advance-a-threat:checked ~ div.threat-advance-a-threat,
input[type=radio].threat-category:checked ~ div.threat-category,
input[type=radio].threat-cursed-site:checked ~ div.threat-cursed-site,
input[type=radio].threat-burgeoning-conflict:checked ~ div.threat-burgeoning-conflict,
input[type=radio].threat-environmental-calamity:checked ~ div.threat-environmental-calamity ,
input[type=radio].threat-malignant-plague:checked ~ div.threat-malignant-plague,
input[type=radio].threat-rampaging-creature:checked ~ div.threat-rampaging-creature,
input[type=radio].threat-ravaging-horde:checked ~ div.threat-ravaging-horde,
input[type=radio].threat-scheming-leader:checked ~ div.threat-scheming-leader,
input[type=radio].threat-power-hungry-mystic:checked ~ div.threat-power-hungry-mystic,
input[type=radio].threat-zealous-cult:checked ~ div.threat-zealous-cult,
input[type=radio].moves-ask-the-oracle:checked ~ div.moves-ask-the-oracle,
input[type=radio].moves-pay-the-price:checked ~ div.moves-pay-the-price
show-hide()
.oracle-container
display flex
opacity 1
std-font()
font-size 1em
font-weight bold
justify-content space-between
margin-top 1em
padding 0.1em
.oracle-column
display flex
flex-direction column
.oracle-sub-column
width 50%
.oracle-roll
width auto
height auto
.theme-outline
border: 1px solid #4C4D4F
span.oracle-result
width 80%
font-size 13px
.oracle-box
borderCommon()
box-sizing: border-box
width: 100%
.oracle-box:nth-child(n+2)
margin-top: 10px
.oracle-title
background-color: #4C4D4F
color: #fff
border-bottom: 1px solid #4C4D4F
font-size: 1.4em
font-weight: bold
padding-left: 5px
padding-right: 5px
text-transform: uppercase
.oracle-table-preview
width: auto
.oracle-show
display inline-flex
font-size 1em
margin 0em
padding 0.3em
.oracle-show:hover
background #969696
cursor pointer
transition .5s ease
.oracle-table
border 2px solid #4C4D4F
.flex-table
display flex
.oracle-row:nth-child(2n+1),
.oracle:nth-child(2n+1)
background-color: #ddd
.oracle-row
padding 3px 0px 3px 0px
display flex
height: auto
.oracle-row-2
width 50%
.oracle-row-3
width: 33.33%
.oracle-row-4
width: 25%
.oracle-roll
width: 20%
padding-left 0.5em
.oracle-table-2-column
column-wrap(48em)
.oracle-table-3-column
column-wrap(63em)
.oracle-table-4-column
column-wrap(93em)
.oracle-table-2-column-group
display flex
.table-list
width 33%
.oracle-column.table-main
width 66%
.oracle-footer
background-color: #434b4d
color: #ffffff
line-height: 0.9em
font-size: 0.9em
std-font()
font-variant: small-caps
font-weight: bold
text-align: left
padding: 0.5rem
.oracle-preview
width max-content
.column-wrap
width 50%
@@ -0,0 +1,43 @@
mixin progressBox
option(value="0" selected)
option(value="1") -
option(value="2") +
option(value="3") *
option(value="4") #
mixin progressTrack(track, name)
.progress-container
div.progress-row
div
label.btn MARK
input(class="mark-vow hide-element" type="checkbox" name="attr_mark_progress")
label.btn CLEAR
input(class="clear-vow hide-element" type="checkbox" name="attr_clear_progress")
each index in track
+progressBoxComplex(`attr_progress_${index}`)
div
label.btn CONCLUDE
button(
type="roll"
class='hide-element'
name="rollProgress"
value=`&{template:ironsworn_progress} {{header=@{character_name} Conclude Your Progress}} {{progress_name=@{${name}}}} {{progress=[[@{progress-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}`
)
input.hide-element(type='text' name='attr_progress-filled' value='floor((@{progress_one}+@{progress_two}+@{progress_three}+@{progress_four}+@{progress_five}+@{progress_six}+@{progress_seven}+@{progress_eight}+@{progress_nine}+@{progress_ten})/4)' disabled='true')
mixin progressBoxComplex(attribute_name)
.progress-input-holder
select(name=attribute_name class="progress-input")
option(value="0" selected)
option(value="1") -
option(value="2") +
option(value="3") *
option(value="4") #
input.hide(type='number' name=attribute_name min='1' required)
span
input.hide(type='number' name=attribute_name min='2' required)
span
input.hide(type='number' name=attribute_name min='3' required)
span
input.hide(type='number' name=attribute_name min='4' required)
span
@@ -0,0 +1,31 @@
- var track = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten' ]
- var challenge = [ 'one', 'two', 'three', 'four' ]
include ../../data/difficulties
include ./mixins/box
fieldset.repeating_progress
div
br
.progress-holder
input.progress-name(type='text' name='attr_name')
label.challenge-show
input(type='checkbox' class='hide-element challenge-show-button' name='attr_challenge-show-button')
.challenge-show-back(data-i18n='progress-challenge')=locals['progress-challenge']
.progress-header
each difficulty, index in difficulties
label.difficulty
if difficulty.checked
input(type="radio" class="hide-element" name="attr_rank" value=index checked)
else
input(type="radio" class="hide-element" name="attr_rank" value=index)
h5=difficulty.text
+progressTrack(track, 'name')
.progress-container
input(type='checkbox' class='hide-element challenge-show' name='attr_challenge-show')
.challenge-row.showhide
label.challenge-label COUNTDOWN
each index in challenge
label.challenge-box
input.challenge.hide-element(type='checkbox' class='hide-element' name=`attr_countdown-${index}`)
.challenge-fill
@@ -0,0 +1,150 @@
.progress-header
display flex
justify-content space-around
align-items center
margin-top 0.3em
.progress-container
display flex
flex-direction column
justify-content center
align-items center
.progress-name
width 100%
font-weight bold
font-size 14px
input
&.progress-name
background #e6e7e8
border 2px solid #494a4c
border-radius 0
margin-bottom 0.2em
.progress-input
width 40px
height 40px
font-size 22px
font-weight bold
background transparent
text-align center
justify-content center
align-items center
padding 2px 0px 0px 12px
margin 0px
cursor pointer
borderCommon()
border-radius 0
&:hover
background-color #ccc
transition 0.5s ease
&:focus
outline 3px solid #fd0
outline-offset 0
box-shadow inset 0 0 0 2px
/* button to control display of countdown boxes */
.progress-holder
display flex
input.progress-name
margin-bottom 0px
.challenge-show
padding 0
margin 0
borderCommon()
width auto
height auto
cursor pointer
border-left 0
&:hover
background #ccc
transition 0.5s ease
.challenge-show-back
height 100%
padding 0em 1em 0em 1em
line-height 25px
input[type='checkbox'].challenge-show:checked ~ div.challenge-row
show-hide(0.7s)
input[type='checkbox'].challenge-show-button:checked ~ div.challenge-show-back
background #4c4d4f
color white
/* grid container to hold challenge boxes and countdown boxes */
.challenge-row, .progress-row
display grid
grid-template-columns 151px repeat(10, 43.5px) 110px
align-items center
/* Individual boxes */
label.challenge-label
padding-left 0.5em
display block
height 18px
margin 0px
.challenge-box
borderCommon()
padding 0
display inline-flex
height 36px
width 36px
margin 0.2em 0em
cursor pointer
.challenge-fill
height 100%
width 100%
background white
input[type="checkbox"].challenge:checked ~ .challenge-fill
background #4c4d4f
input[type="checkbox"].challenge:hover ~ .challenge-fill
background #E6E7E8
.blank-index
display: inline-block
height: 40px
width: 40px
/* crazy stuff for svg crosses */
.progress-input-holder {
position relative
margin 0.3em 0em
}
.progress-input-holder input[min], input[min] + span
display none
position absolute
top 2px
left 2px
width 36px
height 36px
pointer-events none
background white
.progress-input-holder input[min="1"]:valid + span
display block
background-image linear-gradient(45deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px))
.progress-input-holder input[min="2"]:valid + span
display block
background-image linear-gradient(45deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%), linear-gradient(135deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%)
.progress-input-holder input[min="3"]:valid + span
display block
background-image linear-gradient(45deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%), linear-gradient(135deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%), linear-gradient(90deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%)
.progress-input-holder input[min="4"]:valid + span
display block
background-image linear-gradient(45deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%), linear-gradient(135deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%), linear-gradient(90deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%), linear-gradient(0deg, transparent 0px, transparent calc(50% - 1px), #4c4d4f calc(50% - 1px), #4c4d4f calc(50% + 1px), transparent calc(50% + 1px), transparent 100%)
@@ -1,5 +1,3 @@
include ../../data/translations
- var charResources = [ 'health', 'spirit', 'supply']
- var sharedResources = [ 'supply' ]
- var standard = [ 5, 4, 3, 2, 1, 0 ]
@@ -15,11 +13,11 @@ mixin dropdowns(resource)
button(
type="roll"
title=`@{roll${resource}}`
class='hide'
class='hide-element'
name=`roll${resource}`
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=roll +${resource}}} {{action=[[{d6+@{${resource}}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+@{${resource}}+(?{Modifier|0})]]}} {{negate2=[[2+@{${resource}}+(?{Modifier|0})]]}} {{negate3=[[3+@{${resource}}+(?{Modifier|0})]]}} {{negate4=[[4+@{${resource}}+(?{Modifier|0})]]}} {{negate5=[[5+@{${resource}}+(?{Modifier|0})]]}} {{negate6=[[6+@{${resource}}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[@{${resource}}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[@{${resource}}]]}}`
)
div(data-i18n=`resource-${resource}`)=translations[`resource-${resource}`]
div(data-i18n=`resource-${resource}`)=locals[`resource-${resource}`]
select(class="resource-value" name=`attr_${resource}`)
if resource == 'wealth'
- var trackValues = inverse
@@ -31,7 +29,7 @@ mixin dropdowns(resource)
mixin character(resources)
div.resources
div.resource
h2.resource-title(data-i18n='character-name')=translations['character-name']
h2.resource-title(data-i18n='character-name')=locals['character-name']
div.health-status-box
input(type='text' class="resource-value character-name" name="attr_character_name" placeholder='Character Name')
@@ -39,10 +37,10 @@ mixin character(resources)
+dropdowns(resource)
div.resource
h2.resource-title(data-i18n='character-experience')=translations['character-experience']
h2.resource-title(data-i18n='character-experience')=locals['character-experience']
div.health-status-box
input(type='text' class="resource-value" name="attr_xp" value="0")
h2.resource-title(data-i18n='character-experience-spent')=translations['character-experience-spent']
h2.resource-title(data-i18n='character-experience-spent')=locals['character-experience-spent']
div.health-status-box
input(type='text' class="resource-value" name="attr_total_xp" value="0")
@@ -1,15 +1,15 @@
.sheet-resources
.resources
display flex
height 2em
justify-content space-between
.sheet-resource
.resource
display flex
borderCommon()
border-left 1px solid
label
&.sheet-health-reset
&.health-reset
font-size 14px
margin 0
padding 2px 7px 2px 6px
@@ -19,20 +19,20 @@ label
transition 0.5s ease
h3
&.sheet-health-max
&.health-max
font-size 14px
margin-right 0.3em
line-height 23px
padding-left 0.3em
&.sheet-health-max-value
&.health-max-value
padding-right 0.3em
.sheet-health-max-value
.health-max-value
font-size 14px
line-height 22px
color #555
.sheet-resource-value
.resource-value
font-size 14px
width 38px
font-weight bold
@@ -47,7 +47,7 @@ h3
&:focus
input-highlight(3px)
.sheet-resource-title
.resource-title
font-size 14px
width auto
line-height 9px
@@ -55,26 +55,26 @@ h3
border-right 1px solid
border-left 1px solid
input[type=text].sheet-resource-value
input[type=text].resource-value
width 22px
border none
cursor text
.sheet-health-max-box
.health-max-box
display flex
background #ccc
.sheet-health-status-box
.health-status-box
display flex
.sheet-load-value
.load-value
width 27px
.sheet-character-name
.character-name
width 15.6em !important
border none
.sheet-roll-resource-label
.roll-resource-label
margin 0
padding 0.15em 0.4em 0em 0.4em
width auto
@@ -1,18 +1,18 @@
/* The switch - the box around the slider */
.sheet-setting-switch
.setting-switch
position: relative
display: inline-block
width: 55px
height: 28px
padding: 0
.sheet-setting-switch input
.setting-switch input
opacity: 0
width: 0
height: 0
/* The slider */
.sheet-setting-slider
.setting-slider
position: absolute
cursor: pointer
top: 0
@@ -23,7 +23,7 @@
-webkit-transition: .4s
transition: .4s
.sheet-setting-slider:before
.setting-slider:before
position: absolute
content: ""
height: 20px
@@ -34,33 +34,34 @@
-webkit-transition: .4s
transition: .4s
input:checked + .sheet-setting-slider
input:checked + .setting-slider
background-color: #4c4d4f
input:focus + .sheet-setting-slider
input:focus + .setting-slider
box-shadow: 0 0 1px #4c4d4f
input:checked + .sheet-setting-slider:before
input:checked + .setting-slider:before
-webkit-transform: translateX(26px)
-ms-transform: translateX(26px)
transform: translateX(26px)
/* Rounded sliders */
.sheet-setting-slider.sheet-setting-round
.setting-slider.setting-round
border-radius: 34px
.sheet-setting-slider.sheet-setting-round:before
.setting-slider.setting-round:before
border-radius: 50%
.sheet-settings-group
.settings-group
display flex
justify-content space-evenly
margin-top 1em
.sheet-settings-group-title
.settings-group-title
align-self center
font-size 1.2em
font-weight bold
.sheet-setting-name
.setting-name
text-align center
font-weight 600
@@ -8,8 +8,8 @@
each domain in domains
option(value=domain) #{domain.replace('_', ' ').toUpperCase()}
input(type='radio' class='hide' name='attr_domain' value='' checked)
input.barrow.hide(type='radio' name='attr_domain' value='barrow')
input(type='radio' class='hide-element' name='attr_domain' value='' checked)
input.barrow.hide-element(type='radio' name='attr_domain' value='barrow')
.barrow.domain-container.showhide
p.theme-body The dead are enshrined here.
h3.theme-header Features
@@ -68,7 +68,7 @@
span.oracle-roll 43-45
span.oracle-result Grave goods with hidden dangers
input.cavern.hide(type='radio' name='attr_domain' value='cavern')
input.cavern.hide-element(type='radio' name='attr_domain' value='cavern')
.cavern.domain-container.showhide
p.theme-body A place of stone and darkness.
h3.theme-header Features
@@ -127,7 +127,7 @@
span.oracle-roll 43-45
span.oracle-result Fissure or sinkhole
input.frozen-cavern.hide(type='radio' name='attr_domain' value='frozen_cavern')
input.frozen-cavern.hide-element(type='radio' name='attr_domain' value='frozen_cavern')
.frozen-cavern.domain-container.showhide
p.theme-body A place of deep caves and enduring cold.
h3.theme-header Features
@@ -186,7 +186,7 @@
span.oracle-roll 43-45
span.oracle-result Disorienting reflections
input.ice-reach.hide(type='radio' name='attr_domain' value='ice_reach')
input.ice-reach.hide-element(type='radio' name='attr_domain' value='ice_reach')
.ice-reach.domain-container.showhide
p.theme-body A frigid landscape formed of frozen seas.
h3.theme-header Features
@@ -245,7 +245,7 @@
span.oracle-roll 43-45
span.oracle-result Foul weather
input.mine.hide(type='radio' name='attr_domain' value='mine')
input.mine.hide-element(type='radio' name='attr_domain' value='mine')
.mine.domain-container.showhide
p.theme-body Tunnels dug greedily and deep.
h3.theme-header Features
@@ -304,7 +304,7 @@
span.oracle-roll 43-45
span.oracle-result Weakened terrain
input.pass.hide(type='radio' name='attr_domain' value='pass')
input.pass.hide-element(type='radio' name='attr_domain' value='pass')
.pass.domain-container.showhide
p.theme-body Treacherous paths over high mountains.
h3.theme-header Features
@@ -363,7 +363,7 @@
span.oracle-roll 43-45
span.oracle-result Foul weather
input.ruin.hide(type='radio' name='attr_domain' value='ruin')
input.ruin.hide-element(type='radio' name='attr_domain' value='ruin')
.ruin.domain-container.showhide
p.theme-body The crumbling legacy of a dead civilization.
h3.theme-header Features
@@ -422,7 +422,7 @@
span.oracle-roll 43-45
span.oracle-result Ancient secrets best left buried
input.sea-cave.hide(type='radio' name='attr_domain' value='sea_cave')
input.sea-cave.hide-element(type='radio' name='attr_domain' value='sea_cave')
.sea-cave.domain-container.showhide
p.theme-body Stone passages carved by ocean waves.
h3.theme-header Features
@@ -481,7 +481,7 @@
span.oracle-roll 43-45
span.oracle-result Claustrophobic squeeze
input.shadowfen.hide(type='radio' name='attr_domain' value='shadowfen')
input.shadowfen.hide-element(type='radio' name='attr_domain' value='shadowfen')
.shadowfen.domain-container.showhide
p.theme-body A primeval marsh, cloaked in mist.
h3.theme-header Features
@@ -540,7 +540,7 @@
span.oracle-roll 43-45
span.oracle-result Hidden quagmire
input.stronghold.hide(type='radio' name='attr_domain' value='stronghold')
input.stronghold.hide-element(type='radio' name='attr_domain' value='stronghold')
.stronghold.domain-container.showhide
p.theme-body A fortress secured against trespassers.
h3.theme-header Features
@@ -599,7 +599,7 @@
span.oracle-roll 43-45
span.oracle-result Alarm trigger
input.tanglewood.hide(type='radio' name='attr_domain' value='tanglewood')
input.tanglewood.hide-element(type='radio' name='attr_domain' value='tanglewood')
.tanglewood.domain-container.showhide
p.theme-body A perilous forest of eternal shadow.
h3.theme-header Features
@@ -658,7 +658,7 @@
span.oracle-roll 43-45
span.oracle-result Entangling plant life
input.underkeep.hide(type='radio' name='attr_domain' value='underkeep')
input.underkeep.hide-element(type='radio' name='attr_domain' value='underkeep')
.underkeep.domain-container.showhide
p.theme-body An age-old subterranean dungeon.
h3.theme-header Features
@@ -8,8 +8,8 @@
each theme in themes
option(value=theme) #{theme.toUpperCase()}
input(type='radio' class='hide' name='attr_theme' value='' checked)
input(type='radio' class='ancient hide' name='attr_theme' value='ancient')
input(type='radio' class='hide-element' name='attr_theme' value='' checked)
input(type='radio' class='ancient hide-element' name='attr_theme' value='ancient')
.ancient.theme-container.showhide
p.theme-body This place holds the secrets of a bygone age.
h3.theme-header Features
@@ -68,7 +68,7 @@
span.oracle-roll 29-30
span.oracle-result Others seek power or knowledge
input(type='radio' class='corrupted hide' name='attr_theme' value='corrupted')
input(type='radio' class='corrupted hide-element' name='attr_theme' value='corrupted')
.corrupted.theme-container.showhide
p.theme-body This place is tainted by dark magic.
h3.theme-header Features
@@ -127,7 +127,7 @@
span.oracle-roll 29-30
span.oracle-result Dread harbingers of a greater magic
input(type='radio' class='fortified hide' name='attr_theme' value='fortified')
input(type='radio' class='fortified hide-element' name='attr_theme' value='fortified')
.fortified.theme-container.showhide
p.theme-body Foes defend this place against intruders.
h3.theme-header Features
@@ -186,7 +186,7 @@
span.oracle-roll 29-30
span.oracle-result Alarm trigger
input(type='radio' class='hallowed hide' name='attr_theme' value='hallowed')
input(type='radio' class='hallowed hide-element' name='attr_theme' value='hallowed')
.hallowed.theme-container.showhide
p.theme-body The faithful worship here.
h3.theme-header Features
@@ -245,7 +245,7 @@
span.oracle-roll 29-30
span.oracle-result Prophecies reveal a dark fate
input(type='radio' class='haunted hide' name='attr_theme' value='haunted')
input(type='radio' class='haunted hide-element' name='attr_theme' value='haunted')
.haunted.theme-container.showhide
p.theme-body Restless spirits are bound to this place.
h3.theme-header Features
@@ -304,7 +304,7 @@
span.oracle-roll 29-30
span.oracle-result Sudden, shocking manifestation
input(type='radio' class='infested hide' name='attr_theme' value='infested')
input(type='radio' class='infested hide-element' name='attr_theme' value='infested')
.infested.theme-container.showhide
p.theme-body Foul creatures dwell here.
h3.theme-header Features
@@ -363,7 +363,7 @@
span.oracle-roll 29-30
span.oracle-result Victim’s horrible fate is revealed
input(type='radio' class='ravaged hide' name='attr_theme' value='ravaged')
input(type='radio' class='ravaged hide-element' name='attr_theme' value='ravaged')
.ravaged.theme-container.showhide
p.theme-body Time, disaster, or strife have taken their toll.
h3.theme-header Features
@@ -422,7 +422,7 @@
span.oracle-roll 29-30
span.oracle-result Ravages return anew
input(type='radio' class='wild hide' name='attr_theme' value='wild')
input(type='radio' class='wild hide-element' name='attr_theme' value='wild')
.wild.theme-container.showhide
p.theme-body Nature prevails in this place.
h3.theme-header Features

Some files were not shown because too many files have changed in this diff Show More