Merge branch 'master' into GURPS-2.5.0

This commit is contained in:
Ken
2020-10-13 20:04:22 -07:00
247 changed files with 57155 additions and 0 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

+9
View File
@@ -0,0 +1,9 @@
{
"html": "apocthulhu.html",
"css": "apocthulhu.css",
"authors": "Emerald Productions, Marco M., Cthulhu Reborn Publishing",
"roll20userid": "557736,3726,7375113",
"preview": "preview.png",
"version": "Version 1.05",
"instructions": "*Published by arrangement with Cthulhu Reborn, creators of the APOCTHULHU RPG*"
}
+356
View File
@@ -0,0 +1,356 @@
{
"art": "art"
,"armor prce":"armor prce"
,"(0%)": "(0%)"
,"(10%)": "(10%)"
,"(20%)": "(20%)"
,"(30%)": "(30%)"
,"(40%)":"(40%)"
,"(record pristine/worn/junk status)":"(record pristine/worn/junk status)"
,"0": "0"
,"Survivor's Name": "Survivor's Name"
,"10": "10"
,"Individual Bonds": "Individual Bonds"
,"Community Bonds": "Community Bonds"
,"112382":"112382"
,"motivations and mental disorders": "motivations and mental disorders"
,"incidents of san loss without going insane": "incidents of san loss without going insane"
,"wounds and ailments":"wounds and ailments"
,"armor and gear":"armor and gear"
,"weapons":"weapons"
,"personal details and notes": "personal details and notes"
,"Archetype": "Archetype"
,"Setting": "Setting"
,"315":"315"
,"Current Home": "Current Home"
,"Sex": "Sex"
,"Age": "Age"
,"Birthplace": "Birthplace"
,"8 points of thick hide": "8 points of thick hide"
,"adapted": "adapted"
,"age": "age"
,"agent signature": "agent signature"
,"alertness fail checkbox": "alertness fail checkbox"
,"alertness rank": "alertness rank"
,"alertness": "alertness"
,"ammo input": "ammo input"
,"ammo":"ammo"
,"anthropology fail checkbox": "anthropology fail checkbox"
,"anthropology rank": "anthropology rank"
,"anthropology": "anthropology"
,"appraise fail checkbox": "appraise fail checkbox"
,"appraise rank": "appraise rank"
,"appraise": "appraise"
,"Skills":"Skills"
,"archeology fail checkbox": "archeology fail checkbox"
,"archeology rank": "archeology rank"
,"archeology": "archeology"
,"armor and gear":"armor and gear"
,"armor piercing input": "armor piercing input"
,"armor piercing":"armor piercing"
,"armor": "armor"
,"art fail checkbox": "art fail checkbox"
,"art name": "art name"
,"art rank":"art rank"
,"art roll": "art roll"
,"artillery fail checkbox": "artillery fail checkbox"
,"artillery rank": "artillery rank"
,"artillery roll": "artillery roll"
,"artillery": "artillery"
,"athletics fail checkbox": "athletics fail checkbox"
,"athletics rank":"athletics rank"
,"athletics roll": "athletics roll"
,"athletics": "athletics"
,"attack": "attack"
,"attacks":"attacks"
,"authorizing officer":"authorizing officer"
,"base range input": "base range input"
,"base range":"base range"
,"Body armor reduces the damage of all attacks except Called Shots and successful Lethality rolls." : "Body armor reduces the damage of all attacks except Called Shots and successful Lethality rolls."
,"bond name": "bond name"
,"bond score": "bond score"
,"bond flag": "bond flag"
,"BP":"BP"
,"breaking point":"breaking point"
,"CHA": "CHA"
,"character name" : "Character name"
,"charisma distinguishing features":"charisma distinguishing features"
,"charisma roll":"charisma roll"
,"charisma score":"charisma score"
,"charisma":"charisma"
,"Check a box when you attempt to use a skill and fail. After the session, add 1d4-1 to each checked skill and erase all checks." : "Check a box when you attempt to use a skill and fail. After the session, add 1d4-1 to each checked skill and erase all checks."
,"checkbox for first aid":"checkbox for first aid"
,"CON": "CON"
,"constitution distinguishing features": "constitution distinguishing features"
,"constitution roll": "constitution roll"
,"constitution score": "constitution score"
,"constitution": "constitution"
,"craft fail checkbox": "craft fail checkbox"
,"craft name": "craft name"
,"craft rank": "craft rank"
,"craft roll": "craft roll"
,"craft":"craft"
,"current status:": "current status:"
,"damage input": "damage input"
,"damage":"damage"
,"damage bonus":"damage bonus"
,"damage (×2)":"damage (×2)"
,"DB":"DB"
,"DD":"DD"
,"demolitions fail checkbox": "demolitions fail checkbox"
,"demolitions rank": "demolitions rank"
,"demolitions roll": "demolitions roll"
,"demolitions": "demolitions"
,"developments which affect home and family": "developments which affect home and family"
,"DEX": "DEX"
,"dexterity distinguishing features": "dexterity distinguishing features"
,"dexterity roll": "dexterity roll"
,"dexterity score": "dexterity score"
,"dexterity": "dexterity"
,"disguise fail checkbox": "disguise fail checkbox"
,"disguise rank":"disguise rank"
,"disguise roll":"disguise roll"
,"disguise": "disguise"
,"distinguishing features": "distinguishing features"
,"dodge fail checkbox":"dodge fail checkbox"
,"dodge rank":"dodge rank"
,"dodge roll":"dodge roll"
,"dodge":"dodge"
,"drive fail checkbox": "drive fail checkbox"
,"drive rank": "drive rank"
,"drive roll": "drive roll"
,"drive":"drive"
,"education":"education and occupational history"
,"employer": "employer"
,"enter a name for non-player character": "enter a name for non-player character"
,"enter armor text": "enter armor text"
,"enter hit points": "enter hit points"
,"enter npc description": "enter npc description"
,"enter sanity loss": "enter sanity loss"
,"enter willpower points": "enter willpower points"
,"equipment & resources":"equipment & resources"
,"firearms fail checkbox": "firearms fail checkbox"
,"firearms rank":"firearms rank"
,"firearms roll": "firearms roll"
,"firearms":"firearms"
,"first aid fail checkbox":"first aid fail checkbox"
,"first aid rank":"first aid rank"
,"first aid roll":"first aid roll"
,"first aid":"first aid"
,"forensics fail checkbox":"forensics fail checkbox"
,"forensics rank": "forensics rank"
,"forensics roll":"forensics roll"
,"forensics": "forensics"
,"foriegn languages and other skills:":"foriegn languages and other skills:"
,"gm whisper toggle": "gm whisper toggle"
,"GM Whisper": "GM Whisper"
,"Has First Aid been attempted since the last injury?":"Has First Aid been attempted since the last injury?"
,"heavy machinery fail checkbox":"heavy machinery fail checkbox"
,"heavy machinery rank":"heavy machinery rank"
,"heavy machinery roll":"heavy machinery roll"
,"heavy machinery":"heavy machinery"
,"heavy weapons fail checkbox":"heavy weapons fail checkbox"
,"heavy weapons rank":"heavy weapons rank"
,"heavy weapons roll":"heavy weapons roll"
,"heavy weapons":"heavy weapons"
,"helplessness 1": "helplessness 1"
,"helplessness 2": "helplessness 2"
,"helplessness 3": "helplessness 3"
,"helplessness": "helplessness"
,"history fail checkbox":"history fail checkbox"
,"history rank":"history rank"
,"history roll":"history roll"
,"history":"history"
,"hit points": "hit points"
,"HP": "HP"
,"insight fail checkbox":"insight fail checkbox"
,"insight rank":"insight rank"
,"insight roll":"insight roll"
,"insight":"insight"
,"injuries":"injuries"
,"INT": "INT"
,"intelligence distinguishing features": "intelligence distinguishing features"
,"intelligence roll": "intelligence roll"
,"intelligence score": "intelligence score"
,"intelligence": "intelligence"
,"kill radius input": "kill radius input"
,"kill radius":"kill radius"
,"law fail checkbox":"law fail checkbox"
,"law rank":"law rank"
,"law roll":"law roll"
,"law":"law"
,"lethality % input": "lethality % input"
,"lethality %":"lethality %"
,"lethality":"lethality"
,"lethality (×2)":"lethality (×2)"
,"luck":"Luck"
,"Luck":"Luck"
,"medicine fail checkbox":"medicine fail checkbox"
,"medicine rank":"medicine rank"
,"medicine roll":"medicine roll"
,"medicine":"medicine"
,"melee weapons fail checkbox":"melee weapons fail checkbox"
,"melee weapons rank":"melee weapons rank"
,"melee weapons roll":"melee weapons roll"
,"melee weapons":"melee weapons"
,"military science fail checkbox":"military science fail checkbox"
,"military science name":"military science name"
,"military science rank":"military science rank"
,"military science roll":"military science roll"
,"military science":"military science"
,"motivations":"motivations"
,"name": "name"
,"nationality": "nationality"
,"navigate fail checkbox":"navigate fail checkbox"
,"navigate rank":"navigate rank"
,"navigate roll":"navigate roll"
,"navigate":"navigate"
,"notes": "notes"
,"npc": "NPC"
,"occult fail checkbox":"occult fail checkbox"
,"occult rank":"occult rank"
,"occult roll":"occult roll"
,"occult":"occult"
,"off":"off"
,"on": "on"
,"other notes name": "other notes name"
,"other notes": "other notes"
,"other notes":"other notes"
,"pc": "PC"
,"permanent resources":"permanent resources"
,"personal data": "personal data"
,"persuade fail checkbox":"persuade fail checkbox"
,"persuade rank":"persuade rank"
,"persuade roll":"persuade roll"
,"persuade":"persuade"
,"pharmacy fail checkbox":"pharmacy fail checkbox"
,"pharmacy rank":"pharmacy rank"
,"pharmacy roll":"pharmacy roll"
,"pharmacy":"pharmacy"
,"pilot fail checkbox":"pilot fail checkbox"
,"pilot name":"pilot name"
,"pilot rank":"pilot rank"
,"pilot roll":"pilot roll"
,"pilot":"pilot"
,"Please indicate why this agent was recruited and why the agent agreed to be recruited.":"Please indicate why this agent was recruited and why the agent agreed to be recruited."
,"post apoc lore fail checkbox":"post apoc lore fail checkbox"
,"post apoc lore name":"post apoc lore name"
,"post apoc lore rank":"post apoc lore rank"
,"post apoc lore roll":"post apoc lore roll"
,"post apoc lore":"post apoc lore"
,"POW": "POW"
,"power distinguishing features": "power distinguishing features"
,"power roll": "power roll"
,"power score": "power score"
,"power": "power"
,"pris/worn/junk":"pris/worn/junk"
,"pristine":"pristine"
,"reassure fail checkbox":"reassure fail checkbox"
,"reassure rank":"reassure rank"
,"reassure roll":"reassure roll"
,"reassure":"reassure"
,"research fail checkbox":"research fail checkbox"
,"research rank":"research rank"
,"research roll":"research roll"
,"research":"research"
,"resource checks":"resource checks"
,"resources at hand":"resources at hand"
,"resources stowed":"resources stowed"
,"resources in storage":"resources in storage"
,"bonds and disorders":"bonds and disorders"
,"rank": "skill %"
,"recovery SAN": "recovery SAN"
,"remarks": "remarks"
,"ranged weapons fail checkbox":"ranged weapons fail checkbox"
,"ranged weapons rank":"ranged weapons rank"
,"ranged weapons roll":"ranged weapons roll"
,"ranged weapons":"ranged weapons"
,"resources":"resources"
,"ride fail checkbox":"ride fail checkbox"
,"ride rank":"ride rank"
,"ride roll":"ride roll"
,"ride":"ride"
,"roll" : "roll"
,"SAN":"SAN"
,"SAN LOSS":"SAN LOSS"
,"sanity points": "sanity points"
,"scavenge fail checkbox":"scavenge fail checkbox"
,"scavenge rank":"scavenge rank"
,"scavenge roll":"scavenge roll"
,"scavenge":"scavenge"
,"science fail checkbox":"science fail checkbox"
,"science name":"science name"
,"science rank":"science rank"
,"science roll":"science roll"
,"science":"science"
,"score": "score"
,"search fail checkbox":"search fail checkbox"
,"search rank":"search rank"
,"search roll":"search roll"
,"search":"search"
,"sex": "sex"
,"sheet settings toggle": "sheet settings toggle"
,"sheet settings": "sheet settings"
,"sheet type": "Sheet Type"
,"Sheet Type": "Sheet Type"
,"skill % input": "skill % input"
,"skill %":"skill %"
,"skill fail checkbox":"skill fail checkbox"
,"specialization name": "specialization name"
,"skill or stat used": "skill or stat used"
,"skill rank": "skill rank"
,"skill roll":"skill roll"
,"skill": "name"
,"skills":"skills"
,"special training input": "special training input"
,"statistical data": "statistical data"
,"Statistics": "Statistics"
,"stealth fail checkbox":"stealth fail checkbox"
,"stealth rank":"stealth rank"
,"stealth roll":"stealth roll"
,"stealth":"stealth"
,"STR": "STR"
,"strength distinguishing features": "strength distinguishing features"
,"strength roll": "strength roll"
,"strength score": "strength score"
,"strength": "strength"
,"surgery fail checkbox":"surgery fail checkbox"
,"surgery rank":"surgery rank"
,"surgery roll":"surgery roll"
,"surgery":"surgery"
,"survival fail checkbox": "survival fail checkbox"
,"survival rank":"survival rank"
,"survival roll":"survival roll"
,"survival":"survival"
,"swim fail checkbox":"swim fail checkbox"
,"swim rank":"swim rank"
,"swim roll":"swim roll"
,"swim":"swim"
,"technology use fail checkbox":"technology use fail checkbox"
,"technology use rank":"technology use rank"
,"technology use roll":"technology use roll"
,"technology use":"technology use"
,"top secret//orcon//special access required delta green agent documenation sheet":"top secret//orcon//special access required delta green agent documenation sheet "
,"unarmed combat fail checkbox":"unarmed combat fail checkbox"
,"unarmed combat rank":"unarmed combat rank"
,"unarmed combat roll":"unarmed combat roll"
,"unarmed combat":"unarmed combat"
,"united states form":"united states form"
,"unnatural fail checkbox":"unnatural fail checkbox"
,"unnatural rank":"unnatural rank"
,"unnatural roll":"unnatural roll"
,"unnatural":"unnatural"
,"uses per game":"uses per game"
,"violence 1": "violence 1"
,"violence 2": "violence 2"
,"violence 3": "violence 3"
,"violence": "violence"
,"weapons input": "weapons input"
,"weapons":"weapons"
,"whisper rolls to gm": "whisper rolls to gm"
,"willpower points":"willpower points"
,"WP":"WP"
,"x5": "x5"
,"yes: only Medicine, Surgery, or long-term rest can help further.":"yes: only Medicine, Surgery, or long-term rest can help further.",
"-": "-"
}
@@ -0,0 +1 @@
# Aces-and-Eights-Character-Sheet
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

@@ -0,0 +1,798 @@
<!-- Logo-->
<img src="https://github.com/lelajcorson/Aces-and-Eights-Character-Sheet/blob/master/logo.jpg?raw=true"/>
<!--Bio-->
<div class = "bio">
<div class = "name">
<label>Name</label><input type = "text" name = "attr_character_name"/>
</div>
<div class = "handedness">
<label>Handedness</label><input type = "text" name = "attr_character_handedness"/>
</div>
<div class = "nationality">
<label>Nationality</label><input type = "text" name = "attr_character_nationality"/>
</div>
<div class = "race">
<label>Race</label><input type = "text" name = "attr_race"/>
</div>
<div class = "profession">
<label>Profession</label><input type = "text" name = "attr_profession"/>
</div>
<div class = "gender">
<label>Gender</label><input type = "text" name = "attr_gender"/>
</div>
<div class = "BPs">
<label>BPs</label><input type = "number" name = "attr_BPs"/>
</div>
<div class = "age">
<label>Age</label><input type = "number" name = "attr_age"/>
</div>
<div class = "height">
<label>Height</label><input type = "text" name = "attr_height"/>
</div>
<div class = "weight">
<label>Weight</label><input type = "text" name = "attr_weight"/>
</div>
</div>
<hr/>
<div>
<button type="action" name="act_character">Character</button>
<button type="action" name="act_weapons">Weapons</button>
<button type = "action" name = "act_bio2">Bio/Other Info</button>
<button type = "action" name = "act_horses">Horses</button>
</div>
<input type='hidden' class='tabstoggle' name='attr_sheetTab' value='character'/>
<div class = "character">
<div class = "grid">
<div class = "abilities">
<h1>ABILITIES</h1>
</div>
<!--Abilities-->
<div class = "abilities_grid">
<div>
<label class = "ability_label_large">STR</label>
</div>
<div>
<input type = "text" name = "attr_str"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Damage Mod</label>
<input type = "text" name = "attr_str_mod"/>
</div>
<div>
<label class = "ability_label_large">INT</label>
</div>
<div>
<input type = "text" name = "attr_int"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Skill Learning Mod</label>
<input type = "text" name = "attr_int_mod"/>
</div>
<div>
<label class = "ability_label_large">WIS</label>
</div>
<div>
<input type = "text" name = "attr_wis"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Skill Learning Mod</label>
<input type = "text" name = "attr_wis_mod"/>
</div>
<div>
<label class = "ability_label_large">DEX</label>
</div>
<div>
<input type = "text" name = "attr_dex"/>
</div>
<div class = "mod_grid">
<label class = "small_label">To-hit Mod</label>
<input type = "text" name = "attr_dex_mod"/>
</div>
<div>
<label class = "ability_label_large">CON</label>
</div>
<div>
<input type = "text" name = "attr_con"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Hit Point Mod</label>
<input type = "text" name = "attr_con_mod"/>
</div>
<div>
<label class = "ability_label_large">LKS</label>
</div>
<div>
<input type = "text" name = "attr_lks"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Rep/Fame Mod</label>
<input type = "text" name = "attr_lks_mod"/>
</div>
<div>
<label class = "ability_label_large">CHA</label>
</div>
<div>
<input type = "text" name = "attr_cha"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Skill Learning Mod</label>
<input type = "text" name = "attr_cha_mod"/>
</div>
<div>
<label class = "ability_label_large">REP</label>
</div>
<div>
<input type = "text" name = "attr_rep"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Rep Points</label>
<input type = "text" name = "attr_rep_points"/>
</div>
<div>
<label class = "ability_label_large">FAME</label>
</div>
<div>
<input type = "text" name = "attr_fame"/>
</div>
<div class = "mod_grid">
<label class = "small_label">Fame Category</label>
<textarea name = "attr_fame_category" class = "fame_category"></textarea>
</div>
</div>
<!--Hit Points-->
<div class = "HP_grid">
<div class = "HP_header">
<label class = "grid_header">HIT POINTS</label>
</div>
<div>
<input type = "text" name = "attr_current_hp" class = "current_hp"/>
<label class = "hp_dash">/</label>
<input type = "text" name = "attr_hp_max">
</div>
</div>
<!--Money-->
<div class = "money_grid">
<label class = "grid_header">MONEY</label>
<input type = "text" name = "attr_money"/>
</div>
<!--Skills-->
<div class = "skills_grid">
<div class = "skills_header">
<label>S</label>
<label>K</label>
<label>I</label>
<label>L</label>
<label>L</label>
<label>S</label>
</div>
<div class = "skills_text_grid">
<label>Skill Name</label>
<label>Tallies</label>
<label>Mastery %</label>
</div>
<div>
<fieldset class = "repeating_skills">
<input type = "text" class = "skill_name" name = "attr_skill_name"/>
<input type = "number" class = "skill_tallies" name = "attr_skill_tallies"/>
<input type = "text" class = "skill_mastery" name = "attr_skill_mastery"/>
<button class = "skills_button" type = "roll" value = "&{template:skills} {{roll=[[1d100]]}} {{mastery=@{skill_mastery}}}{{name=@{skill_name}}}"></button>
</fieldset>
</div>
</div>
<!--Items-->
<div class = "items_grid">
<label class = "grid_header">ITEMS</label>
<textarea name = "attr_items" id = "itemsInput"></textarea>
</div>
</div>
<textarea class = "big_box" name = "attr_random_stuff"></textarea>
</div>
<div class = "weapons">
<!--Accuracy and Speed-->
<div class = "acc_speed">
<div><label class = "grid_header">SPEED</label></div>
<div><input type = "number" name = "attr_speed"></div>
<div><label class = "grid_header">ACCURACY</label></div>
<div><input type = "number" name = "attr_acc"></div>
</div>
<div class = "speed_mods_hidden">
<fieldset>
<input type = "text" name = "attr_speed_mod_type" placeholder = "Description">
<input tyep = "text" name = "attr_speed_mod" placeholder = "Mod">
</fieldset>
</div>
<hr>
<!--Weapons-->
<fieldset class = "repeating_weapons">
<div class = "weapons_bio">
<div>
<label>Weapon</label>
</div>
<div>
<input type = "text" name = "attr_weapon_type">
</div>
<div>
<label>Draw Speed</label>
</div>
<div>
<input type = "number" name = "attr_weapon_draw_speed">
</div>
<div>
<label>Accuracy</label>
</div>
<div>
<input type = "number" name = "attr_weapon_accuracy">
</div>
<div>
<label>Damage/Shot</label>
</div>
<div>
<input type = "text" class = "damage_per_shot" name = "attr_weapon_damage">
</div>
<div>
<label>Reload Speed</label>
</div>
<div>
<input type = "text" name = "attr_weapon_reload_speed" class = "reload_speed">
</div>
<div>
<label>Shots Fired</label>
</div>
<div>
<input type = "number" name = "attr_weapon_shots_fired">
</div>
<div>
<label>Other Details</label>
</div>
<div>
<input type = "text" name = "attr_weapon_details">
</div>
</div>
<div class = "weapons_range">
<div class = "range_label">
<label>Range</label>
</div>
<div>
<label>5'</label> <input type = "text" name = "attr_range_5">
</div>
<div>
<label>10'</label> <input type = "text" name = "attr_range_10">
</div>
<div>
<label>15'</label> <input type = "text" name = "attr_range_15">
</div>
<div>
<label>20'</label> <input type = "text" name = "attr_range_20">
</div>
<div>
<label>25'</label> <input type = "text" name = "attr_range_25">
</div>
<div>
<label>30'</label> <input type = "text" name = "attr_range_30">
</div>
<div>
<label>40'</label> <input type = "text" name = "attr_range_40">
</div>
<div>
<label>50'</label> <input type = "text" name = "attr_range_50">
</div>
<div>
<label>70'</label> <input type = "text" name = "attr_range_70">
</div>
<div>
<label>90'</label> <input type = "text" name = "attr_range_90">
</div>
<div>
<label>120'</label> <input type = "text" name = "attr_range_120">
</div>
<div>
<label>150'</label> <input type = "text" name = "attr_range_150">
</div>
<div>
<label>200'</label> <input type = "text" name = "attr_range_200">
</div>
<div>
<button class = "weapons_button" type = "roll" value = "&{template:attack} {{roll=[[1d20 + @{acc} + ?{Range|5 Feet, @{range_5}|
10 Feet, @{range_10}|15 Feet, @{range_10}|20 Feet, @{range_20}|25 Feet, @{range_25}|30 Feet, @{range_30}|40 Feet, @{range_40}|
50 Feet, @{range_50}|70 Feet, @{range_70}|90 Feet, @{range_90}|120 Feet, @{range_120}|150 Feet, @{range_150}|200 Feet, @{range_200}|
250 Feet, @{range_250}|300 Feet, @{range_300}|350 Feet, @{range_350}|400 Feet, @{range_400}|450 Feet, @{range_450}|500 Feet, @{range_500}|
600 Feet, @{range_600}|700 Feet, @{range_700}|800 Feet, @{range_800}|900 Feet, @{range_900}|1000 Feet, @{range_1000}|1250 Feet, @{range_1250}|
1500 Feet, @{range_1500}} + ?{Aiming|None, 0|Steady Aim Pistol, 3|Fire Deliberately Pistol, 4|
Careful Aim Pistol, 7|Fire Deliberately Rifle, 4|Careful Aim Rifle, 7}]]}} {{damage=[[@{weapon_damage} + @{str_mod}]]}} {{weapon=@{weapon_type}}}"
>Attack</button>
<button class = "weapons_button" type = "roll" value = "&{template:damage} {{damage=[[(@{weapon_damage}) * ?{Number of Shots|1, 1|2, 2|3, 3|4, 4|5, 5|
6, 6|7, 7|8, 8|9, 9|10, 10} + @{str_mod}]]}} {{weapon=@{weapon_type}}}">Damage</button>
</div>
<div>
<label>250'</label> <input type = "text" name = "attr_range_250">
</div>
<div>
<label>300'</label> <input type = "text" name = "attr_range_300">
</div>
<div>
<label>350'</label> <input type = "text" name = "attr_range_350">
</div>
<div>
<label>400'</label> <input type = "text" name = "attr_range_400">
</div>
<div>
<label>450'</label> <input type = "text" name = "attr_range_450">
</div>
<div>
<label>500'</label> <input type = "text" name = "attr_range_500">
</div>
<div>
<label>600'</label> <input type = "text" name = "attr_range_600">
</div>
<div>
<label>700'</label> <input type = "text" name = "attr_range_700">
</div>
<div>
<label>800'</label> <input type = "text" name = "attr_range_800">
</div>
<div>
<label>900'</label> <input type = "text" name = "attr_range_900">
</div>
<div>
<label>1000'</label> <input type = "text" name = "attr_range_1000">
</div>
<div>
<label>1250'</label> <input type = "text" name = "attr_range_1250">
</div>
<div>
<label>1500'</label> <input type = "text" name = "attr_range_1500">
</div>
</div>
<hr>
</fieldset>
</div>
<!--Bio/Other Info Page-->
<div class = "bio2">
<div class = "talents">
<div class = "bio2_grid">
<div class = "bio2_talents">
<h1 class = "grid_header">TALENTS</h1>
<div>
<input type = "text" name = "attr_talent1">
<input type = "text" name = "attr_talent2">
<input type = "text" name = "attr_talent3">
<input type = "text" name = "attr_talent4">
<input type = "text" name = "attr_talent5">
<input type = "text" name = "attr_talent6">
</div>
</div>
<div class = "bio2_quirks">
<h1 class = "grid_header">QUIRKS & FLAWS</h1>
<div>
<input type = "text" name = "attr_quirk1">
<input type = "text" name = "attr_quirk2">
<input type = "text" name = "attr_quirk3">
<input type = "text" name = "attr_quirk4">
<input type = "text" name = "attr_quirk5">
<input type = "text" name = "attr_quirk6">
</div>
</div>
<div class = "bio2_personal_goals">
<h1 class = "grid_header">PERSONAL GOALS</h1>
<div>
<div class = "flex">
<div>
<input type = "text" class = "goal" placeholder = "Goal" name = "attr_goal1">
</div>
<div>
<input type = "text" class = "goal_BPs" placeholder= "BPs" name = "attr_goal_bp_1">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal2">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp2">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal3">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp3">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal4">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp4">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal5">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp5">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal6">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp6">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal7">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp7">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal8">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp8">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal9">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp9">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal10">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp10">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal11">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp11">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal12">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp13">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal14">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp15">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "goal" name = "attr_goal16">
</div>
<div>
<input type = "text" class = "goal_BPs" name = "attr_goal_bp16">
</div>
</div>
</div>
</div>
<div class = "bio2_profession">
<h1 class = "grid_header">PROFESSION PATHS</h1>
<div class = "flex">
<div>
<input type = "text" class = "prof" placeholder = "Profession Milestone" name = "attr_prof1">
</div>
<div>
<input type = "text" class = "prof_BPs" placeholder = "BPs" name = "attr_goal_prof_bp1">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "prof" name = "attr_prof2">
</div>
<div>
<input type = "text" class = "prof_BPs" name = "attr_goal_prof_bp2">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "prof" name = "attr_prof3">
</div>
<div>
<input type = "text" class = "prof_BPs" name = "attr_goal_prof_bp3">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "prof" name = "attr_prof4">
</div>
<div>
<input type = "text" class = "prof_BPs" name = "attr_goal_prof_bp4">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "prof" name = "attr_prof5">
</div>
<div>
<input type = "text" class = "prof_BPs" name = "attr_goal_prof_bp5">
</div>
</div>
<div class = "flex">
<div>
<input type = "text" class = "prof" name = "attr_prof6">
</div>
<div>
<input type = "text" class = "prof_BPs" name = "attr_goal_prof_bp6">
</div>
</div>
</div>
<div class = "personality">
<h1 class = "grid_header">PERSONALITY</h1>
<textarea class = "personality_text" name = "attr_personality"></textarea>
</div>
<div class = "backstory">
<h1 class = "grid_header">BACKSTORY/FAMILY</h1>
<textarea class = "backstory_text" name = "attr_backstory"></textarea>
</div>
<div class = "wounds">
<h1 class = "grid_header">WOUNDS</h1>
<fieldset class = "repeating_wounds">
<div class = "flex">
<input class = "wounds_points" type = "text" placeholder = "points" name = "attr_wounds_points">
<label class = "wounds_in">in</label>
<input class = "wounds_location" type = "text" placeholder = "location" name = "attr_wounds_location">
<label>; heals in</label>
<input class = "wounds_days" type = "text" placeholder = "days" name = "attr_wounds_days">
</div>
</fieldset>
</div>
<div class = "notes">
<h1 class = "grid_header">OTHER NOTES</h1>
<textarea class = "notes_text" name = "notes"></textarea>
</div>
</div>
</div>
</div>
<div class = "horses">
<fieldset class = "repeating_horse">
<div class = "bio">
<div class = "name">
<label>Name</label><input type = "text" name = "attr_horse_name"/>
</div>
<div class = "breed">
<label>Breed</label><input type = "text" name = "attr_horse_breed"/>
</div>
<div class = "vices">
<label>Vices</label><input type = "text" name = "attr_horse_vices"/>
</div>
<div class = "markings">
<label>Markings</label><input type = "text" name = "attr_horse_markings"/>
</div>
<div class = "horse_gender">
<label>Gender</label><input type = "text" name = "attr_horse_gender"/>
</div>
<div class = "age">
<label>Age</label><input type = "number" name = "attr_horse_age"/>
</div>
<div class = "horse_height">
<label>Height</label><input type = "text" name = "attr_horse_age"/>
</div>
<div class = "personality">
<label>Personality</label><input type = "text" name = "attr_horse_personality"/>
</div>
<div class = "color">
<label>Color</label><input type = "text" name = "attr_horse_color"/>
</div>
<div class = "horse_HP">
<label>HP</label><input type = "text" name = "attr_horse_HP_current"><label>/</label><input type = "text" name = "attr_horse_HP_max">
</div>
</div>
<div class = "horse_stats">
<h1 class = "header">STATS</h1>
<h1>NOTES/TACK</h1>
<div class = "horse_grid">
<div class = "horse_stats_grid">
<div>
<label>Short Speed</label><input type = text name = "attr_horse_short_speed">
</div>
<div>
<label>Med Speed</label><input type = text name = "attr_horse_med_speed">
</div>
<div>
<label>Long Speed</label><input type = text name = "attr_horse_long_speed">
</div>
<div>
<label>Agility</label></label><input type = text name = "attr_horse_agility">
</div>
<div>
<label>Endurance</label></label><input type = text name = "attr_horse_endurance">
</div>
<div>
<label>Horse Sense</label></label><input type = text name = "attr_horse_endurance">
</div>
<div>
<label>Temperment</label></label><input type = text name = "attr_horse_temperment">
</div>
<div>
<label>Trainability</label></label><input type = text name = "attr_horse_trainability">
</div>
<div>
<label>Mettle</label></label><input type = text name = "attr_horse_mettle">
</div>
<div>
<label>Soundness</label></label><input type = text name = "attr_horse_soundness">
</div>
<div>
<label>Strength</label></label><input type = text name = "attr_horse_strength">
</div>
</div>
<div>
<textarea class = "horse_tack"></textarea>
</div>
</div>
</div>
</fieldset>
</div>
<rolltemplate class="sheet-rolltemplate-skills">
<div class = "sheet-roll_grid">
<div class="sheet-roll_numbers">
<span>{{roll}}</span>
</div>
<div class = "sheet-roll_numbers">
<span>{{mastery}}</span>
</div>
<div class="sheet-roll_labels">
<span>Roll</span>
</div>
<div class = "sheet-roll_labels">
<span>Mastery</span>
</div>
<div class="sheet-roll_name">
<span>{{name}}</span>
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-attack">
<div class = "sheet-roll_grid">
<div class="sheet-roll_numbers">
<span>{{roll}}</span>
</div>
<div class = "sheet-roll_numbers">
<span>{{damage}}</span>
</div>
<div class="sheet-roll_labels">
<span>Roll</span>
</div>
<div class = "sheet-roll_labels">
<span>Damage</span>
</div>
<div class="sheet-roll_name">
<span>{{weapon}}</span>
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-damage">
<div class = "sheet-roll_numbers">
<span>{{damage}}</span>
</div>
<div class = "sheet-roll_labels">
<span>Damage</span>
</div>
<div class="sheet-roll_name">
<span>{{weapon}}</span>
</div>
</rolltemplate>
<script type="text/worker">
const buttonlist = ["character","weapons", "bio2", "horses"];
buttonlist.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
sheetTab: button
});
});
});
</script>
@@ -0,0 +1,8 @@
{
"html": "sheet.html",
"css": "style.css",
"authors": "Lela Corson",
"roll20userid": "2784707",
"preview": "preview.PNG",
"instructions": "This is a character sheet for the game Aces and Eights (published 2007). Use the tabs underneath the top bio to navigate to the weapons, horses, and other info sections."
}
@@ -0,0 +1,614 @@
@import url('https://fonts.googleapis.com/css?family=Playfair+Display|Rye&display=swap');
input, select, textarea{
color: #000000;
}
input, label, textarea{
font-family: "Playfair Display";
}
input{
border-top: 0px;
border-right: 0px;
border-left: 0px;
}
/*Tabs*/
.sheet-character,
.sheet-weapons,
.sheet-bio2,
.sheet-horses{
display: none;
}
.sheet-tabstoggle[value="character"] ~ div.sheet-character,
.sheet-tabstoggle[value="weapons"] ~ div.sheet-weapons,
.sheet-tabstoggle[value="bio2"] ~ div.sheet-bio2,
.sheet-tabstoggle[value="horses"] ~ div.sheet-horses{
display: block;
}
/*Bio*/
.sheet-bio label {
display: inline;
font-size: 17px;
}
.sheet-bio input{
display: inline;
font-weight: bold;
font-size: 15px;
height: 20px;
}
.sheet-bio{
display:flex;
flex-wrap: wrap;
}
.sheet-bio > div{
margin-right: 10px;
margin-bottom: 5px;
}
.sheet-age input, .sheet-height input, .sheet-BPs input{
width: 40px;
}
.sheet-name input{
width: auto;
}
.sheet-handedness input{
width: 90px;
}
.sheet-gender input{
width: 120px;
}
.sheet-weight input{
width: 50px;
}
.sheet-race input, .sheet-nationality input, .sheet-profession input{
width: 145px;
}
/*Logo*/
img{
float: right;
width: 40%;
margin-right: 20px;
}
hr {
display: block;
border-top: 2px solid #000000;
margin-top: 0px;
margin-bottom: 10px;
padding: 0;
}
.charsheet{
background: white;
}
h1{
font-family: "Rye";
padding:0px;
margin: 0px;
text-align: center;
}
.sheet-grid_header{
font-family: "Rye";
font-size: 24px;
text-align: center;
}
.sheet-grid{
display: grid;
grid-template-columns: 256px 180px 400px;
grid-template-rows: 40px 50px 80px 95px 195px;
column-gap: 0px;
}
.sheet-abilities_grid{
grid-row: 2/ span 4;
grid-col: 1;
display: grid;
grid-template-columns: 70px 60px 116px;
grid-template-rows: 40px 40px 40px 40px 40px 40px 40px 40px 40px;
column-gap: 3px;
row-gap: 5px;
justify-items: center;
align-items:center;
}
.sheet-ability_label_large{
font-size: 22px;
font-family: "Rye";
align-self: end;
padding: 2px;
margin-top: 10px;
justify-self: center;
}
.sheet-abilities_grid label + input{
height: 20px;
width: 116px;
}
.sheet-abilities_grid input{
height: 30px;
width: 50px !important;
align-self: start;
text-align: center;
font-size: 20px;
}
.sheet-small_label{
font-size: 13px;
margin-bottom: 1px;
margin-top: 0px;
padding: 0px;
display: block;
justify-self: center;
text-align: center;
}
.sheet-mod_grid{
display: grid;
grid-template-columns: 116px;
grid-template-rows: 20px 30px;
justify-items: center;
}
.sheet-fame_category{
font-size: 13px;
width: 80px;
height: 36px;
resize: none;
text-align: center;
}
.sheet-acc_speed{
display: flex;
flex-wrap: wrap;
align-items: center;
}
.sheet-acc_speed label{
margin-top: 10px;
display: inline;
}
.sheet-acc_speed input{
font-size: 20px;
width: 50px;
margin-right: 10px;
margin-bottom: 10px;
}
.sheet-speed_mods_hidden{
display:none;
}
.sheet-HP_header label{
margin-top: 7px;
}
.sheet-hp_dash{
font-size: 40px;
display: inline;
}
.sheet-HP_grid input{
width: 60px !important;
height: 33px;
text-align: center;
font-size: 28px;
margin-bottom: 20px;
}
.sheet-current_hp{
margin-left: 9px;
margin-right: 7px;
}
.sheet-HP_grid{
grid-row: 1 / span 2;
grid-col: 2;
}
.sheet-money_grid input{
font-size: 21px;
width: 180px;
text-align: center;
}
.sheet-money_grid{
grid-row: 3;
grid-col: 2;
}
.sheet-skills_grid{
grid-col: 3;
grid-row: 1 / span 5;
display: grid;
grid-template-columns: 30px auto;
grid-template-rows: 40px 160px;
column-gap: 10px;
}
.sheet-skills_text_grid{
display: grid;
grid-template-columns: 182px 50px auto;
grid-template-rows: 30px;
column-gap: 15px;
}
.sheet-skills_text_grid label{
font-size: 17px;
}
.sheet-skills_header{
grid-col: 1;
grid-row: span 2;
margin-left: 10px;
}
.sheet-skills_header label{
font-family: "Rye";
font-size: 24px;
display: inline;
}
.sheet-skills_grid input{
font-size: 15px;
}
.sheet-skill_name{
width: 195px;
}
.sheet-skill_tallies{
width: 50px !important;
}
.sheet-skill_mastery{
width: 70px;
}
.sheet-items_grid{
grid-col: 2;
grid-row: 4 / span 2;
}
.sheet-items_grid textarea{
resize: none;
height: 255px;
width: 180px;
}
.sheet-weapons{
grid-row: 1;
grid-col: 1;
margin-top: 10px;
}
.sheet-weapons_bio{
display: flex;
flex-wrap: wrap;
}
.sheet-weapons_bio input{
margin-bottom: 5px;
}
.sheet-big_box{
margin-top: 10px;
width: 430px;
}
textarea{
font-size: 15px;
}
.sheet-repeating_weapons{
margin-bottom: 10px;
}
.sheet-weapons_bio label{
font-size: 17px;
}
.sheet-weapons_bio input{
margin-right: 15px;
font-size: 15px;
}
.sheet-damage_per_shot{
width: 60px;
}
.sheet-weapons_range{
display: grid;
grid-template-columns: 80px 40px 40px 40px 40px 40px 40px 40px 40px 40px 40px 40px 40px 40px;
grid-template-rows: 55px 55px;
grid-col: 1;
grid-row: 3;
margin-top: 10px;
column-gap: 15px;
margin-bottom: 10px;
}
.sheet-range_label{
grid-col: 1;
grid-row: 1;
}
.sheet-range_label label{
font-size: 20px;
font-weight: bold;
}
.sheet-weapons_range input{
width: 40px;
font-size: 15px;
text-align: center;
}
.sheet-weapons_range label{
text-align: center;
font-size: 17px;
}
.sheet-weapons_button{
grid-col: 1;
grid-row: 2;
height: 20px;
}
.sheet-reload_speed{
width: 150px;
}
button{
font-family: "Rye";
font-size: 15px;
border-radius: 5px;
height: 20px;
margin-bottom: 5px;
}
button.sheet-weapons_button:before{
content: "" !important;
}
.sheet-bio2_grid{
display: grid;
grid-template-columns: 220px 130px 110px 370px;
grid-template-rows: 200px 200px 300px auto;
}
.sheet-bio2_grid > div{
border: 1px solid black;
}
.sheet-bio2_grid input{
height: 25px;
font-size: 16px;
margin-left: 5px;
}
.sheet-bio2_quirks input{
width: 230px;
}
.sheet-bio2_quirks{
grid-column: 2 / span 2;
}
.sheet-bio2_personal_goals{
grid-column: 4;
grid-row: 1 / span 2;
}
.sheet-flex{
display: flex;
flex-wrap: flex;
}
.sheet-goal{
width: 310px;
}
.sheet-goal_BPs{
width: 45px;
text-align: center;
}
.sheet-bio2_profession{
grid-column: 1 / span 3;
}
.sheet-prof{
width: 390px;
}
.sheet-prof_BPs{
width: 50px;
}
.sheet-personality{
grid-column: 1 / span 2;
}
.sheet-personality_text{
width: 320px;
height: 250px;
margin-left: 10px;
resize: none;
}
.sheet-backstory{
grid-column: 3 / span 2;
}
.sheet-backstory_text{
width: 450px;
height:250px;
margin-left: 10px;
resize: none;
}
.sheet-wounds_points{
width: 60px;
}
.sheet-wounds_days{
width: 60px;
}
.sheet-wounds label{
width: auto;
}
.sheet-notes_text{
width: 340px;
height: 200px;
resize: none;
margin-left: 10px;
}
.sheet-notes{
height: 250px;
}
.sheet-wounds{
grid-column: 1 / span 3;
}
.sheet-breed input, .sheet-personality input{
width: 130px;
}
.sheet-markings input{
width: 400px;
}
.sheet-horse_gender input{
width: 70px;
}
.sheet-horse_height input{
width: 80px;
}
.sheet-horse_HP input{
width: 30px;
margin-right: 10px;
font-size: 20px;
}
.sheet-horse_stats h1{
text-align: left;
margin-left: 130px;
display: inline;
margin-right: 130px;
}
.sheet-horse_stats_grid{
display: flex;
flex-wrap: wrap;
grid-col: 1;
grid-row: 1;
}
.sheet-horse_stats_grid input, .sheet-horse_stats_grid label{
display: inline;
width: auto;
}
.sheet-horse_stats_grid label{
width: 90px;
text-align: center;
}
.sheet-horse_stats_grid input{
width: 50px;
}
.sheet-horse_grid{
display: grid;
grid-template-columns: 450px 285px;
grid-template-rows: 120px;
}
.sheet-horse_tack{
height: 110px;
resize: none;
}
.sheet-rolltemplate-skills, .sheet-rolltemplate-attack{
background: url(https://github.com/lelajcorson/Aces-and-Eights-Character-Sheet/blob/skills-rolltemplate/roll_border.png?raw=true) top left;
background-size: 195px 104px;
background-repeat: no-repeat;
font-size: 15px;
height: 104px;
width: 195px;
text-align: center;
font-family: "Playfair Display";
}
.sheet-rolltemplate-skills .sheet-roll_grid, .sheet-rolltemplate-attack .sheet-roll_grid, .sheet-rolltemplate-damage .sheet-roll_grid{
display: grid;
grid-template-columns: 92px 92px;
grid-template-rows: 42px 20px 26px;
margin-left: 5px;
padding-top: 10px;
}
.sheet-rolltemplate-skills .sheet-roll_numbers span, .sheet-rolltemplate-attack .sheet-roll_numbers span, .sheet-rolltemplate-damage .sheet-roll_numbers span{
background-color: rgba(255, 255, 255, 0);
border: 2px solid transparent !important;
font-size: 30px;
line-height: 1.3;
text-align: center;
font-weight: bold;
}
.sheet-rolltemplate-skills .sheet-roll_name, .sheet-rolltemplate-attack .sheet-roll_name{
grid-column: 1 / span 2;
}
.sheet-rolltemplate-damage{
background: url(https://github.com/lelajcorson/Aces-and-Eights-Character-Sheet/blob/skills-rolltemplate/damage_rolltemplate_border.png?raw=true);
background-size: 195px 104px;
background-repeat: no-repeat;
font-size: 15px;
height: 104px;
width: 195px;
text-align: center;
font-family: "Playfair Display";
}
.sheet-rolltemplate-damage .sheet-roll_numbers{
padding-top: 10px;
}
.sheet-rolltemplate-damage .sheet-roll_name span{
line-height: 2;
}
.sheet-rolltemplate-damage .sheet-roll_numbers span .inlinerollresult.fullfail {
color: red;
}
.sheet-rolltemplate-damage .sheet-roll_numbers span .inlinerollresult.fullcrit {
color: green;
}
+592
View File
@@ -0,0 +1,592 @@
@import url('https://fonts.googleapis.com/css?family=Oldenburg|New+Rocker&display=swap');
.sheet-abafrente,
.sheet-abaverso {
display: none;
}
/* show the selected tab */
.sheet-typetoggle[value="abafrente"] ~ div.sheet-abafrente,
.sheet-typetoggle[value="abaverso"] ~ div.sheet-abaverso {
display: block;
}
.sheet-botao-selecao {
font-family: 'New Rocker', cursive;
text-align:center;
font-size:1.3em;
border-radius: 5px solid black;
background-color: white;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
-webkit-border-radius: 5px;
color: black;
background-color:white;
}
.sheet-main {
width: 830px;
height: 750px;
font-family: 'Oldenburg', cursive;
}
.sheet-tab {
margin-bottom: 15px;
margin-top: 2px;
}
/* GRID setup */
.sheet-dados-frente {
display: grid !important;
width: 830px;
height: 750px;
font-family: 'Oldenburg', cursive;
grid-gap: 0px;
grid-template-columns: 165px 260px 405px;
grid-template-rows: 70px 52px 90px 207px;
grid-template-areas:"header header backstory "
"stats combat backstory "
"stats combat proficiencies"
"stats combat abilities "
"weapons weapons abilities ";
}
.sheet-dados-verso {
display: grid !important;
width: 830px;
height: 750px;
font-family: 'Oldenburg', cursive;
grid-gap: 0px;
grid-template-columns: 55% 45%;
grid-template-rows: 80px 670px;
grid-template-areas:"rewards notes"
"equipaments notes ";
}
/* GRID sections */
.sheet-rewards {
grid-area: rewards;
}
.sheet-rewards input {
width: 5.2em !important;
}
.sheet-equipaments {
grid-area: equipaments;
}
.sheet-notes {
grid-area: notes;
max-width: 90%;
width: 90%;
margin-left: 15px;
}
.sheet-header {
grid-area: header;
}
.sheet-main label {
font-family: 'New Rocker', cursive;
}
.sheet-header input {
max-width: 120px;
margin-top: -5px;
}
.sheet-header input {
border-bottom: 1px solid black;
border-top: 0px;
border-left: 0px;
border-right: 0px;
background: none;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
-webkit-border-radius: 0px;
border-radius: 0px;
height: 18px;
}
.sheet-weapons {
grid-area: weapons;
margin-top: 125px;
}
.sheet-stats {
grid-area: stats;
}
.sheet-stats label {
font-size: 1.7em;
font-family: 'New Rocker', cursive;
}
.sheet-stats-atributo {
max-width: 40px;
font-size: 1.3em;
}
.sheet-stats-mod {
max-width: 25px;
}
.sheet-stats-content {
display: grid;
grid-gap: 0px;
grid-template-columns: 30% 30% 20% 20%;
grid-template-rows: 32px 32px 32px 32px 32px 32px;
grid-template-areas:"for for-value for-mod for-roll"
"des des-value des-mod des-roll"
"con con-value con-mod con-roll"
"int int-value int-mod int-roll"
"sab sab-value sab-mod sab-roll"
"car car-value car-mod car-roll";
}
.sheet-stats-for {
grid-area: for;
}
.sheet-stats-for-value {
grid-area: for-value;
}
.sheet-stats-for-mod {
grid-area: for-mod;
}
.sheet-stats-for-roll {
grid-area: for-roll;
}
.sheet-stats-des {
grid-area: des;
}
.sheet-stats-des-value {
grid-area: des-value;
}
.sheet-stats-des-mod {
grid-area: des-mod;
}
.sheet-stats-des-roll {
grid-area: des-roll;
}
.sheet-stats-con {
grid-area: con;
}
.sheet-stats-con-value {
grid-area: con-value;
}
.sheet-stats-con-mod {
grid-area: con-mod;
}
.sheet-stats-con-roll {
grid-area: con-roll;
}
.sheet-stats-int {
grid-area: int;
}
.sheet-stats-int-value {
grid-area: int-value;
}
.sheet-stats-int-mod {
grid-area: int-mod;
}
.sheet-stats-int-roll {
grid-area: int-roll;
}
.sheet-stats-sab {
grid-area: sab;
}
.sheet-stats-sab-value {
grid-area: sab-value;
}
.sheet-stats-sab-mod {
grid-area: sab-mod;
}
.sheet-stats-sab-roll {
grid-area: sab-roll;
}
.sheet-stats-car {
grid-area: car;
}
.sheet-stats-car-value {
grid-area: car-value;
}
.sheet-stats-car-mod {
grid-area: car-mod;
}
.sheet-stats-car-roll {
grid-area: car-roll;
}
/* Chrome, Safari, Edge, Opera */
.sheet-abafrente input::-webkit-outer-spin-button,
.sheet-abafrente input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
.sheet-abafrente input[type=number] {
-moz-appearance: textfield;
}
.sheet-combat {
grid-area: combat;
}
.sheet-combat label {
font-family: 'New Rocker', cursive;
}
.sheet-combat textarea {
font-size:0.7em;
}
.sheet-proficiencies {
grid-area: proficiencies;
margin-top:110px;
margin-left: 10px;
}
.sheet-proficiencies textarea {
max-width: 100%;
width: 100%;
max-height: 50px !important;
margin-top: 5px;
height:50px !important;
font-size:0.7em;
}
.sheet-backstory {
grid-area: backstory;
margin-left: 10px;
}
.sheet-backstory textarea {
max-width: 100%;
width: 100%;
max-height: 50px !important;
margin-top: 5px;
height:50px !important;
font-size:0.7em;
}
.sheet-backstory label {
font-family: 'New Rocker', cursive;
}
.sheet-backstory input {
width: 98%;
}
.sheet-backstory-content {
display: grid;
grid-gap: 0px;
grid-template-columns: 20% 80%;
grid-template-rows: 25% 25% 25% 25%;
grid-template-areas:"familia familia-input "
"obsessao obsessao-input"
"amigo amigo-input "
"inimigo inimigo-input ";
}
.sheet-backstory-familia {
grid-area: familia;
}
.sheet-backstory-familia-input {
grid-area: familia-input;
}
.sheet-backstory-obsessao {
grid-area: obsessao;
}
.sheet-backstory-obsessao-input {
grid-area: obsessao-input;
}
.sheet-backstory-amigo {
grid-area: amigo;
}
.sheet-backstory-amigo-input {
grid-area: amigo-input;
}
.sheet-backstory-inimigo {
grid-area: inimigo;
}
.sheet-backstory-inimigo-input {
grid-area: inimigo-input;
}
.sheet-abilities {
grid-area: abilities;
margin-top:125px;
margin-left: 10px;
}
.sheet-abilities-content {
display: grid;
grid-gap: 0px;
grid-template-columns: 5% 95%;
grid-template-rows: 10% 10% 10% 10% 10% 10% 10% 10% 10% 10%;
grid-template-areas:"habilidade1-label habilidade1-value "
"habilidade2-label habilidade2-value "
"habilidade3-label habilidade3-value "
"habilidade4-label habilidade4-value "
"habilidade5-label habilidade5-value "
"habilidade6-label habilidade6-value "
"habilidade7-label habilidade7-value "
"habilidade8-label habilidade8-value "
"habilidade9-label habilidade9-value "
"habilidade10-label habilidade10-value ";
}
.sheet-habilidade1-label {
grid-area: habilidade1-label;
}
.sheet-habilidade1-value {
grid-area: habilidade1-value;
}
.sheet-habilidade2-label {
grid-area: habilidade2-label;
}
.sheet-habilidade3-value {
grid-area: habilidade3-value;
}
.sheet-habilidade4-label {
grid-area: habilidade4-label;
}
.sheet-habilidade4-value {
grid-area: habilidade4-value;
}
.sheet-habilidade5-label {
grid-area: habilidade5-label;
}
.sheet-habilidade5-value {
grid-area: habilidade5-value;
}
.sheet-habilidade6-label {
grid-area: habilidade6-label;
}
.sheet-habilidade6-value {
grid-area: habilidade6-value;
}
.sheet-habilidade6-value {
grid-area: habilidade6-value;
}
.sheet-habilidade7-label {
grid-area: habilidade7-label;
}
.sheet-habilidade7-value {
grid-area: habilidade7-value;
}
.sheet-habilidade8-label {
grid-area: habilidade8-label;
}
.sheet-habilidade8-value {
grid-area: habilidade8-value;
}
.sheet-habilidade9-label {
grid-area: habilidade9-label;
}
.sheet-habilidade9-value {
grid-area: habilidade9-value;
}
.sheet-habilidade10-label {
grid-area: habilidade10-label;
}
.sheet-habilidade10-value {
grid-area: habilidade10-value;
}
.sheet-abilities-content input {
max-width: 100%;
width: 100%;
}
.sheet-abilities-content select {
max-width: 87%;
width: 87%;
margin-bottom: 0px;
}
.sheet-up_atributo {
font-family: 'Oldenburg', cursive !important;
font-size: 1em;
margin-bottom: 0px;
}
.sheet-rolltemplate-ataque,
.sheet-rolltemplate-atributo,
.sheet-rolltemplate-dado-uso {
box-sizing:border-box;
width:100%;
position:relative;
background-color:white;
overflow:hidden;
border-radius: 5px solid purple;
background-color: white;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
-webkit-border-radius: 5px;
}
.sheet-rolltemplate-ataque .sheet-rollbox-container,
.sheet-rolltemplate-atributo .sheet-rollbox-container,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container {
width:100%;
position:relative;
box-sizing:border-box;
border:2px solid black
}
.sheet-rolltemplate-ataque .sheet-rollbox-container .sheet-rollbox{
padding:5px;
position:relative;
width:100%;
min-height:40px;
display:grid;
box-sizing:border-box;
grid-template-columns:1fr 1px 1fr;
column-gap:5px;
row-gap:5px
}
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container .sheet-rollbox{
padding:5px;
width:100%;
box-sizing:border-box;
text-align:center;
}
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox-desempenho,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container .sheet-rollbox-desempenho {
padding:5px;
font-family: 'Oldenburg', cursive;
width:100%;
box-sizing:border-box;
margin-bottom:3px;
}
.sheet-rolltemplate-ataque .sheet-rollbox-container .sheet-rollbox .sheet-roll-title,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container .sheet-rollbox .sheet-roll-title,
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox .sheet-roll-title,
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox-desempenho .sheet-roll-title{
width:100%;
grid-column:1/4;
min-height:16px;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
text-transform:uppercase
}
.sheet-rolltemplate-ataque .sheet-rollbox-container .sheet-rollbox .sheet-roll-label,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container .sheet-rollbox .sheet-roll-label,
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox .sheet-roll-label,
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox-desempenho .sheet-roll-label{
margin-top:5px;
width:100%;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
font-weight:normal
}
.sheet-rolltemplate-ataque .sheet-rollbox-container .sheet-rollbox .sheet-roll,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container .sheet-rollbox .sheet-roll,
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox .sheet-roll,
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox-desempenho .sheet-roll{
padding-top:5px;
width:100%;
display:flex;
align-items:center;
justify-content:center;
text-align:center
}
.sheet-rolltemplate-ataque .sheet-rollbox-container .sheet-rollbox .sheet-roll span,
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox .sheet-roll span,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container .sheet-rollbox .sheet-roll span{
margin:0 auto;
padding:8px;
font-size:18px
}
.sheet-rolltemplate-atributo .sheet-rollbox-container .sheet-rollbox-desempenho .sheet-roll span,
.sheet-rolltemplate-dado-uso .sheet-rollbox-container .sheet-rollbox-desempenho .sheet-roll span{
margin-top:-9px;
padding:8px;
font-size:18px
}
.sheet-rolltemplate-ataque .sheet-rollbox-container .sheet-rollbox .sheet-divisor{
display:flex;
align-items:center;
justify-content:center;
text-align:center
}
.sheet-rolltemplate-ataque .sheet-rollbox-container .sheet-rollbox .sheet-divisor span{
width:1px;
height:70%;
background-color:green;
}
.sheet-rolltemplate-ataque .sheet-header,
.sheet-rolltemplate-atributo .sheet-header,
.sheet-rolltemplate-dado-uso .sheet-header{
width: 100%;
background-color: green;
display: inline-block;
text-align: center;
color: white;
position: relative;
font-size: 1.3em;
}
.sheet-rolltemplate-ataque .sheet-left,
.sheet-rolltemplate-atributo .sheet-left,
.sheet-rolltemplate-dado-uso .sheet-left{
margin-left: 5px;
}
+577
View File
@@ -0,0 +1,577 @@
<div class="sheet-main">
<div class="tab">
<button class="botao-selecao" type="action" name="act_abafrente">Frente</button>
<button class="botao-selecao" type="action" name="act_abaverso">Verso</button>
</div>
<input type='hidden' class='typetoggle' name='attr_typetoggle' value='abafrente' />
<div class="abafrente">
<div class="dados-frente">
<div class="header">
<div class="row">
<div class="col">
<label>Nome</label>
</div>
<div class="col">
<input type="text" name="attr_character_name"/>
</div>
<div class="col">
<label>Ancestralidade</label>
</div>
<div class="col">
<input type="text" name="attr_raca" style="max-width: 123px"/>
</div>
</div>
<div class="row">
<div class="col">
<label>Classe</label>
</div>
<div class="col">
<input type="text" name="attr_classe"/>
</div>
<div class="col" style="max-width: 70px;">
<label>Especialização</label>
</div>
<div class="col" style="margin-left: 30px">
<input type="text" name="attr_especializacao"/>
</div>
</div>
</div>
<div class="stats">
<div class="stats-content">
<div class="stats-for">
<label>For</label>
</div>
<div class="stats-for-value">
<input type="number" name='attr_for' value="10" class='stats-atributo'>
</div>
<div class="stats-for-mod">
<input type="text" name="attr_for_mod_fake" value="@{for_mod}" disabled="true" class='stats-mod'>
</div>
<div class="stats-for-roll">
<button type="roll" align="right" value="&{template:atributo} {{nome=@{character_name}}} {{atributo=Força}} {{desempenho=[[?{Situação|Normal, 1d20|Vantagem, 2d20kh1|Desvantagem, 2d20kl1}+@{for_mod}+?{Bônus|0}]]}}"></button>
</div>
<div class="stats-des">
<label>Des</label>
</div>
<div class="stats-desc-value">
<input type="number" name='attr_des' value="10" class='stats-atributo'>
</div>
<div class="stats-des-mod">
<input type="text" name="attr_des_mod_fake" value="@{des_mod}" disabled="true" class='stats-mod'>
</div>
<div class="stats-des-roll">
<button type="roll" align="right" value="&{template:atributo} {{nome=@{character_name}}} {{atributo=Destreza}} {{desempenho=[[?{Situação|Normal, 1d20|Vantagem, 2d20kh1|Desvantagem, 2d20kl1}+@{des_mod}+?{Bônus|0}]]}}"></button>
</div>
<div class="stats-con">
<label>Con</label>
</div>
<div class="stats-con-value">
<input type="number" name='attr_con' value="10" class='stats-atributo'>
</div>
<div class="stats-con-mod">
<input type="text" name="attr_con_mod_fake" value="@{con_mod}" disabled="true" class='stats-mod'>
</div>
<div class="stats-con-roll">
<button type="roll" align="right" value="&{template:atributo} {{nome=@{character_name}}} {{atributo=Constituição}} {{desempenho=[[?{Situação|Normal, 1d20|Vantagem, 2d20kh1|Desvantagem, 2d20kl1}+@{con_mod}+?{Bônus|0}]]}}"></button>
</div>
<div class="stats-int">
<label>Int</label>
</div>
<div class="stats-int-value">
<input type="number" name='attr_int' value="10" class='stats-atributo'>
</div>
<div class="stats-int-mod">
<input type="text" name="attr_int_mod_fake" value="@{int_mod}" disabled="true" class='stats-mod'>
</div>
<div class="stats-int-roll">
<button type="roll" align="right" value="&{template:atributo} {{nome=@{character_name}}} {{atributo=Inteligência}} {{desempenho=[[?{Situação|Normal, 1d20|Vantagem, 2d20kh1|Desvantagem, 2d20kl1}+@{int_mod}+?{Bônus|0}]]}}"></button>
</div>
<div class="stats-sab">
<label>Sab</label>
</div>
<div class="stats-sab-value">
<input type="number" name='attr_sab' value="10" class='stats-atributo'>
</div>
<div class="stats-sab-mod">
<input type="text" name="attr_sab_mod_fake" value="@{sab_mod}" disabled="true" class='stats-mod'>
</div>
<div class="stats-sab-roll">
<button type="roll" align="right" value="&{template:atributo} {{nome=@{character_name}}} {{atributo=Sabedoria}} {{desempenho=[[?{Situação|Normal, 1d20|Vantagem, 2d20kh1|Desvantagem, 2d20kl1}+@{sab_mod}+?{Bônus|0}]]}}"></button>
</div>
<div class="stats-car">
<label>Car</label>
</div>
<div class="stats-car-value">
<input type="number" name='attr_car' value="10" class='stats-atributo'>
</div>
<div class="stats-car-mod">
<input type="text" name="attr_car_mod_fake" value="@{car_mod}" disabled="true" class='stats-mod'>
</div>
<div class="stats-car-roll">
<button type="roll" align="right" value="&{template:atributo} {{nome=@{character_name}}} {{atributo=Carisma}} {{desempenho=[[?{Situação|Normal, 1d20|Vantagem, 2d20kh1|Desvantagem, 2d20kl1}+@{car_mod}+?{Bônus|0}]]}}"></button>
</div>
<div class="row">
<a href="https://imgur.com/kTGnSqo"><img src="https://i.imgur.com/kTGnSqo.png" title="source: imgur.com" /></a>
</div>
</div>
</div>
<div class="combat">
<div class="row">
<label style="font-size: 1.7em; text-align:center">CA</label>
</div>
<div class="row" style="margin-left:22px">
<div class="col">
<input type="number" name='attr_catotal' value="10+@{ca1}+@{ca2}+@{ca3}" disabled="true" class='sheet-short sheet-atributos' style="width: 40px; font-size:1.2em;">
</div>
<div class="col">
<input type="number" name='attr_ca1' value="0" class='sheet-short' style="margin-left:10px; width: 30px;">
</div>
<div class="col">
<label style="margin-top:6px">+</label>
</div>
<div class="col">
<input type="number" name='attr_ca2' value="0" class='sheet-short' style="width: 30px;">
</div>
<div class="col">
<label style="margin-top:6px">+</label>
</div>
<div class="col">
<input type="number" name='attr_ca3' value="0" class='sheet-short' style="width: 30px;">
</div>
</div>
<div class="row">
<div class="col" style="margin-left: 42px;">
<label>Prof</label>
</div>
<div class="col" style="margin-left: 20px;">
<label>PV</label>
</div>
<div class="col" style="margin-left: 50px;">
<label>DV</label>
</div>
</div>
<div class="row" style="margin-left: 50px;">
<div class="col">
<input type="number" name='attr_prof' value="0" class='sheet-short sheet-atributos' style="width: 40px; font-size: 1.7em;">
</div>
<div class="col" style="margin-left: 12px;">
<input type="number" name='attr_pv' value="0" class='sheet-short sheet-atributos' style="width: 60px; font-size: 1.7em; text-align: right;">
</div>
<div class="col" style="margin-left: 18px;">
<input type="number" name='attr_dv' value="0" class='sheet-short sheet-atributos' style="width: 40px; font-size: 1.7em;">
</div>
</div>
<div class="row" style="margin-top: 5px; margin-left:22px; max-width:205px;">
<label>Jogadas de Morte</label>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<input type="checkbox" name="attr_morte_a1" title="@{morte_a1}" />
<input type="checkbox" name="attr_morte_a2" title="@{morte_a2}" />
<input type="checkbox" name="attr_morte_a3" title="@{morte_a3}" />
<br>
<input type="checkbox" name="attr_morte_b1" title="@{caminho_morte_b1}" />
<input type="checkbox" name="attr_morte_b2" title="@{caminho_morte_b2}" />
<input type="checkbox" name="attr_morte_b3" title="@{caminho_morte_b3}" />
<br> <br>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<label>Consequências</label>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<textarea style="max-height:18px" name="attr_consequencias"></textarea>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<label>Exaustão</label>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<textarea style="max-height:18px" name="attr_exaustao"></textarea>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<label>Condições</label>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<textarea style="max-height:17px" name="attr_condicoes"></textarea>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<label>Habilidades de Classe</label>
</div>
<div class="row" style="margin-left:22px; max-width:205px;">
<textarea style="max-height:15px" name="attr_habilidades_classe"></textarea>
</div>
</div>
<div class="backstory">
<div class="row">
<label>Histórico e Carta na Manga</label>
</div>
<div class="row">
<textarea name="attr_historico"></textarea>
</div>
<div class="backstory-content">
<div class="backstory-familia">
<label>Família</label>
</div>
<div class="backstory-familia=input">
<input type="text" name="attr_familia" />
</div>
<div class="backstory-obsessao">
<label>Obsessão</label>
</div>
<div class="backstory-obsessao-input">
<input type="text" name="attr_obsessao"/>
</div>
<div class="backstory-amigo">
<label>Amigo</label>
</div>
<div class="col-amigo-input">
<input type="text" name="attr_amigo" />
</div>
<div class="backstory-inimigo">
<label>Inimigo</label>
</div>
<div class="backstory-inimigo-input">
<input type="text" name="attr_inimigo" />
</div>
</div>
</div>
<div class="proficiencies">
<div class="row">
<label>Proficiências</label>
</div>
<div class="row">
<textarea name="attr_proficiencia"></textarea>
</div>
</div>
<div class="abilities">
<div class="row">
<label>Habilidades</label>
</div>
<div class="abilities-content">
<div class="habilidade1-label">
<label>1.</label>
</div>
<div class="habilidade1-value">
<input type="text" name="attr_habilidade1" />
</div>
<div class="habilidade2-label">
<label>2.</label>
</div>
<div class="habilidade2-value">
<input type="text" name="attr_habilidade2" />
</div>
<div class="habilidade3-label">
<label>3.</label>
</div>
<div class="habilidade3-value">
<input type="text" name="attr_habilidade3"/>
</div>
<div class="habilidade4-label">
<label>4.</label>
</div>
<div class="habilidade4-value">
<label class="up_atributo"> +1 em
<select name="attr_atributo_habilidade4">
<option value="" selected=""></option>
<option value="for">Força</option>
<option value="des">Destreza</option>
<option value="con">Constituição</option>
<option value="int">Inteligência</option>
<option value="sab">Sabedoria</option>
<option value="car">Carisma</option>
</select>
</label>
</div>
<div class="habilidade5-label">
<label>5.</label>
</div>
<div class="habilidade5-value">
<input type="text" name="attr_habilidade5" />
</div>
<div class="habilidade6-label">
<label>6.</label>
</div>
<div class="habilidade6-value">
<input type="text" name="attr_habilidade6" />
</div>
<div class="habilidade7-label">
<label>7.</label>
</div>
<div class="habilidade7-value">
<label class="up_atributo"> +1 em
<select name="attr_atributo_habilidade7">
<option value="" selected=""></option>
<option value="for">Força</option>
<option value="des">Destreza</option>
<option value="con">Constituição</option>
<option value="int">Inteligência</option>
<option value="sab">Sabedoria</option>
<option value="car">Carisma</option>
</select>
</label>
</div>
<div class="habilidade8-label">
<label>8.</label>
</div>
<div class="habilidade8-value">
<input type="text" name="attr_habilidade8" />
</div>
<div class="habilidade9-label">
<label>9.</label>
</div>
<div class="habilidade9-value">
<input type="text" name="attr_habilidade9" />
</div>
<div class="habilidade10-label">
<label>10.</label>
</div>
<div class="habilidade1--value">
<input type="text" name="attr_habilidade10" />
</div>
</div>
</div>
<div class="weapons">
<div class="row" style="font-size:1em">
<div class="col" style="max-width:150px">
<label>Nome</label>
</div>
<div class="col" style="margin-left:105px">
<label>Tipo</label>
</div>
<div class="col" style="margin-left:35px">
<label>Dano</label>
</div>
<div class="col" style="margin-left:48px">
<label>Dado</label>
</div>
</div>
<fieldset class="repeating_skills">
<div class="row">
<div class="col" style="max-width:150px">
<input type="text" name="attr_nome_arma" style="width:150px;" />
</div>
<div class="col" style="max-width:80px">
<select name="attr_atributoataque" style="font-size:0.7em; width:80px;">
<option value="@{for_mod}" selected="">Corporal</option>
<option value="0">Distância</option>
</select>
</div>
<div class="col" style=" max-width:60px">
<input type="text" name="attr_dano_arma" style="width: 50px;" />
</div>
<div class="col">
<button type="roll" align="right" value="&{template:ataque} {{nome=@{character_name} atacou com @{nome_arma}!}} {{ataque=[[?{Situação|Normal, 1d20|Vantagem, 2d20kh1|Desvantagem, 2d20kl1}+@{atributoataque}+?{Bônus|0}]]}} {{dano=[[@{dano_arma}}]]}}"></button>
</div>
<div class="col" style=" max-width:50px">
<select name="attr_dado" style="width:50px;">
<option value="1d4" selected="">d4</option>
<option value="1d6">d6</option>
<option value="1d8">d8</option>
<option value="1d10">d10</option>
<option value="1d12">d12</option>
</select>
</div>
<div class="col">
<button type="roll" align="right" value="&{template:dado-uso} {{nome=@{character_name} rolou o dado de uso de @{nome_arma}!}} {{ataque=[[@{dado}}]]}}"></button>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="abaverso">
<div class="dados-verso">
<div class="rewards">
<div class="row">
<div class="col">
<label>Nível
<input type="number" name="attr_nivel" style="width: 3.5em !important">
</label>
</div>
<div class="col">
<label>XP
<input type="number" name="attr_xp">
</label>
</div>
</div>
<div class="row">
<div class="col">
<label>PC
<input type="number" name="attr_pc">
</label>
</div>
<div class="col">
<label>PP
<input type="number" name="attr_pp">
</label>
</div>
<div class="col">
<label>PO
<input type="number" name="attr_po">
</label>
</div>
</div>
</div>
<div class="equipaments">
<label>Equipamentos</label>
<div class="row" style="font-size:1em">
<div class="col" style="max-width:150px">
<label>Item</label>
</div>
<div class="col" style="margin-left:105px">
<label>Propriedades</label>
</div>
<div class="col" style="margin-left:50px">
<label>Carga</label>
</div>
<div class="col" style="margin-left:5px">
<label>Dado</label>
</div>
</div>
<fieldset class="repeating_skills">
<div class="row">
<div class="col" style="max-width:150px">
<input type="text" name="attr_item" style="width:150px;" />
</div>
<div class="col" style="max-width:150px">
<input type="text" name="attr_propriedades" style="width:150px;" />
</div>
<div class="col" style=" max-width:60px">
<input type="number" name="attr_carga" style="width: 53px;" />
</div>
<div class="col" style=" max-width:50px">
<select name="attr_item_dado" style="width:50px;">
<option value="1d4" selected="">d4</option>
<option value="1d6">d6</option>
<option value="1d8">d8</option>
<option value="1d10">d10</option>
<option value="1d12">d12</option>
</select>
</div>
<div class="col">
<button type="roll" align="right" value="&{template:dado-uso} {{nome=@{character_name} rolou o dado de uso de @{nome_arma}!}} {{ataque=[[@{dado}}]]}}"></button>
</div>
</div>
</fieldset>
</div>
<div class="notes">
<label>Anotações</label>
<div class="row">
<textarea style="max-height:100%; height:100%" name="attr_notes"></textarea>
</div>
</div>
</div>
</div>
<rolltemplate class="sheet-rolltemplate-atributo">
<div class="sheet-rollbox-container">
<div class="header">
<span class="left">Teste de {{atributo}}</span>
</div>
<br>
<div class="rollbox">
<div>
<div class="roll">
{{nome}} rolou
</div>
</div>
</div>
<div class="rollbox-desempenho">
<div>
<div class="roll">
{{desempenho}}
</div>
</div>
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-ataque">
<div class="sheet-rollbox-container">
<div class="header">
<span class="left">{{nome}}</span>
</div>
<br>
<div class="rollbox">
<div>
<div class="roll">
{{ataque}}
</div>
<div class="roll-label">
Ataque
</div>
</div>
<div class="divisor"><span></span></div>
<div>
<div class="roll">
{{dano}}
</div>
<div class="roll-label">
Dano
</div>
</div>
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-dado-uso">
<div class="sheet-rollbox-container">
<div class="header">
<span class="left">{{nome}}</span>
</div>
<br>
<div class="rollbox">
<div>
<div class="roll">
{{ataque}}
</div>
</div>
</div>
</div>
</rolltemplate>
</div>
<script type="text/worker">
var calc_mod = function (valor){
if(isNaN(valor)){
return 0;
}
return Math.floor((valor - 10) / 2);
};
['for', 'des', 'con', 'int', 'sab', 'car'].forEach(stat => {
on(`sheet:opened change:${stat}`, function(){
getAttrs([stat], function(v){
let mod = calc_mod(v[stat] ||10);
setAttrs({
[`${stat}_mod`]: mod
});
});
});
});
/*Controle de abas*/
const outerTabsButtons = ["abafrente", "abaverso"];
outerTabsButtons.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
typetoggle: button
});
});
});
</script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

+8
View File
@@ -0,0 +1,8 @@
{
"html": "arcanas.html",
"css": "arcanas.css",
"authors": "David Dornelles, Cleison Ferreira e Julia Yamamoto",
"roll20userid": "2623485",
"preview": "arcanas.png",
"instructions": ""
}
+842
View File
@@ -0,0 +1,842 @@
@font-face {
font-family: 'Kalam';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Kalam'), local('Kalam-Regular'), url(https://fonts.gstatic.com/s/kalam/v11/YA9dr0Wd4kDdMthfOCfzsw.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Piazzolla';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(https://fonts.gstatic.com/s/piazzolla/v2/N0b52SlTPu5rIkWIZjVKKtYtfxYqZ4RJBFzFfYUjkSDdlqZgy7I_wUL13gA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body {
}
input {
font-family: 'Kalam', cursive;
font-size: 18px;
padding: 0px 5px;
color: #307187;
background-color: rgba(255, 255, 255, .5);
border-color: #a69c73;
}
textarea {
font-family: 'Kalam', cursive;
font-size: 18px;
color: #307187;
background-color: rgba(255, 255, 255, .5);
border-color: #a69c73;
resize: none;
}
select {
background-color: rgba(255, 255, 255, .5);
border-color: #a69c73;
width: auto;
}
button {
position: relative;
background-color: rgba(255, 255, 255, .5) !important;
background-image: none !important;
border: 1px solid #a69c73 !important;
border-radius: 0px !important;
padding: 5px 5px !important;
}
.sheet-btn-min {
width: 15px;
height: 15px;
top: -2px;
}
h3 {
margin-top: 10px;
margin-bottom: 5px;
}
.sheet-hr_opt {
margin-top: 5px;
margin-bottom: 10px;
border-top-color: #a69c73;
width: calc(100% - 20px);
}
.sheet-tabstoggle[value="1"] ~ div.sheet-options {
display: block;
}
.sheet-tabstoggle[value="1"] ~ button.sheet-l_options {
background: rgba(0, 0, 0, 0) url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Aria/images/close.png) no-repeat center center !important;
background-size: 100% 100% !important;
}
.sheet-co-comp1-hi[value="1"] ~ div.sheet-co-comp1-div {
display: block;
}
.sheet-co-comp2-hi[value="1"] ~ div.sheet-co-comp2-div {
display: block;
}
.sheet-co-comp3-hi[value="1"] ~ div.sheet-co-comp3-div {
display: block;
}
.sheet-co-comp1-div {
position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
display: none;
text-align: center;
color: #ffffff;
z-index: 500;
width: calc(100% - 10px);
height: calc(100% - 10px);
padding: 5px;
background: rgba(0, 0, 0, 0.80);
}
.sheet-co-comp2-div {
position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
display: none;
text-align: center;
color: #ffffff;
z-index: 500;
width: calc(100% - 10px);
height: calc(100% - 10px);
padding: 5px;
background: rgba(0, 0, 0, 0.80);
}
.sheet-co-comp3-div {
position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
display: none;
text-align: center;
color: #ffffff;
z-index: 500;
width: calc(100% - 10px);
height: calc(100% - 10px);
padding: 5px;
background: rgba(0, 0, 0, 0.80);
}
.sheet-l_options {
position: absolute;
background: rgba(0, 0, 0, 0) url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Aria/images/options.png) no-repeat center center !important;
background-size: 100% 100% !important;
z-index: 100;
top: 2px;
right: 1px;
height: 10px;
width: 10px;
border: none !important;
filter: brightness(0.8);
}
.sheet-l_options:hover {
filter: brightness(0.4);
}
.sheet-options {
position: relative;
display: none;
z-index: 50;
width: calc(100% - 10px);
height: auto;
padding: 5px;
background: rgba(245, 245, 245, 1);
border: 1px solid #201f22;
}
.sheet-fiche {
height: 1380px;
position: absolute;
display: block;
width: 100%;
background: #fcf8f2 url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Aria/images/background.jpg) no-repeat center center;
background-size: 100% 100%;
border: 1px solid #a69c73;
}
.sheet-body {
position: relative;
font-family: 'Piazzolla', serif;
max-width: 1250px;
min-width: 675px;
margin: 0;
padding: 0;
bottom: 0px;
left: 0px;
right: 0px;
color: #201f22;
}
.sheet-titre {
text-transform: uppercase;
font-size: 18px;
}
.sheet-av-texte {
float: left;
width: 25%;
line-height: 25px;
overflow: hidden;
}
.sheet-av-input-texte {
float: left;
width: 75%;
overflow: hidden;
}
.sheet-ca-button {
float: left;
width: 32px;
height: 29px;
line-height: 25px;
}
.sheet-ca-texte {
float: left;
width: 33%;
line-height: 25px;
overflow: hidden;
}
.sheet-ca-input-texte {
float: left;
width: 50px;
overflow: hidden;
text-align: center;
}
.sheet-vi-button {
position: relative;
top: 30px;
width: 30px;
height: 29px;
line-height: 25px;
}
.sheet-vi-input-texte {
position: relative;
width: calc(100% - 110px);
top: 0px;
left: 32px;
overflow: hidden;
}
.sheet-vi-input-texte-degats {
position: absolute;
float: right;
width: 75px;
height: 75px !important;
top: 0px;
right: 0px;
border-radius: 37px;
overflow: hidden;
text-align: center;
font-size: 20px;
padding: 0px;
}
.sheet-vi-texte1 {
position: absolute;
float: left;
overflow: hidden;
top: 58px;
left: 30px;
}
.sheet-vi-texte2 {
position: absolute;
float: left;
overflow: hidden;
top: 58px;
left: calc(100% - 106px);
}
.sheet-sa-input-texte {
width: 75px;
height: 75px !important;
border-radius: 37px;
overflow: hidden;
text-align: center;
font-size: 25px;
}
.sheet-sa-texte {
overflow: hidden;
text-align: center;
}
.sheet-rp-texte {
line-height: 12px;
}
.sheet-rp-input-texte {
position: relative;
height: 50px;
font-size: 15px;
top: 5px;
}
.sheet-comp {
position: relative;
width: 100%;
height: 1px;
margin-top: 28px;
}
.sheet-co-button {
position: absolute;
top: -4px;
width: 30px;
height: 29px;
line-height: 25px;
}
.sheet-co-nom {
position: absolute;
top: 0px;
left: 32px;
font-size: 12px;
}
.sheet-co-lien {
position: absolute;
top: 0px;
right: 70px;
width: 80px;
text-align: center;
}
.sheet-co-score {
position: absolute;
top: -5px;
right: 0px;
width: 70px;
text-align: center;
}
.sheet-co-input-texte {
width: 50px;
text-align: center;
}
.sheet-comp-sp {
position: relative;
width: 100%;
height: 1px;
margin-top: 28px;
}
.sheet-co-sp-button {
position: absolute;
top: -4px;
width: 30px;
height: 29px;
line-height: 25px;
}
.sheet-co-sp-nom {
position: absolute;
top: -5px;
left: 32px;
width: calc(100% - 212px);
font-size: 12px;
}
.sheet-co-sp-lien {
position: absolute;
top: -5px;
right: 70px;
width: 105px;
text-align: center;
}
.sheet-co-sp-score {
position: absolute;
top: -5px;
right: 0px;
width: 70px;
text-align: center;
}
.sheet-co-sp-input-nom {
width: 100%;
font-size: 15px;
padding: 2px 2px;
}
.sheet-co-sp-input-lien {
width: 40px;
text-align: center;
font-size: 15px;
padding: 2px 2px;
}
.sheet-co-sp-input-score {
width: 50px;
text-align: center;
}
.sheet-po-texte {
text-transform: uppercase;
}
.sheet-po-input-texte {
position: relative;
height: 150px;
font-size: 15px;
}
.sheet-po-input-notes {
background: rgba(255, 255, 255, .5) url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Aria/images/logo_250.png) no-repeat center center;
}
.sheet-bo-texte {
float: left;
width: 25%;
}
.sheet-bo-input-texte {
float: left;
width: calc(25% - 5px);
margin-right: 5px;
font-size: 15px;
}
/*------------- AVENTURIER -------------*/
.sheet-block-av-ca {
position: relative;
top: 20px;
left: 10px;
width: calc(50% - 70px);
}
.sheet-t-aventurier {
position: absolute;
width: 100%;
}
.sheet-av-nom {
position: absolute;
top: 35px;
width: 100%;
}
.sheet-av-profession {
position: absolute;
top: 65px;
width: 100%;
}
.sheet-av-age {
position: absolute;
top: 95px;
width: 100%;
}
/*---------- CARACTERISTIQUES ----------*/
.sheet-t-carac {
position: absolute;
top: 125px;
width: 100%;
}
.sheet-ca-force {
position: absolute;
top: 160px;
width: 100%;
}
.sheet-ca-dexterite {
position: absolute;
top: 190px;
width: 100%;
}
.sheet-ca-endurance {
position: absolute;
top: 220px;
width: 100%;
}
.sheet-ca-intelligence {
position: absolute;
top: 250px;
width: 100%;
}
.sheet-ca-charisme {
position: absolute;
top: 280px;
width: 100%;
}
/*--------- VIVRE OU SURVIVRE ---------*/
.sheet-block-vi {
position: relative;
top: 20px;
left: calc(50% - 40px);
width: calc(50% - 70px);
}
.sheet-t-vivre {
position: absolute;
top: 0px;
width: 100%;
}
.sheet-vi-arme1 {
position: absolute;
top: 35px;
width: 100%;
}
.sheet-vi-arme2 {
position: absolute;
top: 135px;
width: 100%;
}
.sheet-vi-arme3 {
position: absolute;
top: 235px;
width: 100%;
}
/*--------------- SANTE ---------------*/
.sheet-block-sa {
position: relative;
top: 20px;
left: calc(100% - 100px);
width: 100px;
text-align: center;
}
.sheet-sa-vie {
position: absolute;
top: 0px;
width: 100%;
text-align: center;
}
.sheet-sa-blessures {
position: absolute;
top: 110px;
width: 100%;
text-align: center;
}
.sheet-sa-protection {
position: absolute;
top: 220px;
width: 100%;
text-align: center;
}
.sheet-sa-hr1 {
position: relative;
top: 350px;
}
/*----------------- RP -----------------*/
.sheet-block-rp {
position: relative;
top: 360px;
left: 10px;
width: calc(100% - 20px);
}
.sheet-rp-genial {
float: left;
width: calc(50% - 18px);
padding-right: 10px;
}
.sheet-rp-problemes {
float: left;
width: calc(50% - 18px);
padding-left: 10px;
}
.sheet-hr1 {
position: relative;
border-top-color: #a69c73;
top: 380px;
width: calc(100% - 20px);
}
/*----------- COMPETENCES -----------*/
.sheet-block-co-titre {
position: relative;
top: 380px;
left: 10px;
width: calc(50% - 20px);
text-transform: uppercase;
}
.sheet-co-titre1 {
position: absolute;
top: 0px;
left: 0px;
}
.sheet-co-titre2 {
position: absolute;
top: 0px;
right: 70px;
width: 80px;
text-align: center;
}
.sheet-co-titre3 {
position: absolute;
top: 0px;
right: 0px;
width: 70px;
text-align: center;
}
.sheet-block-co {
position: relative;
top: 400px;
left: 10px;
width: calc(50% - 20px);
}
.sheet-block-co-separateur {
position: absolute;
top: -20px;
left: -13px;
width: 1px;
height: 600px;
background: #a69c73;
}
.sheet-block-co-sp-titre {
position: relative;
top: -180px;
left: calc(50% + 10px);
width: calc(50% - 20px);
text-transform: uppercase;
}
.sheet-co-sp-titre1 {
position: absolute;
top: 0px;
left: 0px;
}
.sheet-co-sp-titre2 {
position: absolute;
top: 0px;
right: 70px;
width: 105px;
text-align: center;
}
.sheet-co-sp-titre3 {
position: absolute;
top: 0px;
right: 0px;
width: 70px;
text-align: center;
}
.sheet-block-co-sp {
position: relative;
top: -180px;
left: calc(50% + 10px);
width: calc(50% - 20px);
}
.sheet-hr2 {
position: relative;
border-top-color: #a69c73;
top: -150px;
width: calc(100% - 20px);
}
/*---------- POSSESSION/NOTES ----------*/
.sheet-block-po {
position: relative;
top: -150px;
left: 10px;
width: calc(100% - 20px);
}
.sheet-po-possessions {
float: left;
width: calc(50% - 18px);
padding-right: 10px;
}
.sheet-po-notes {
float: left;
width: calc(50% - 18px);
padding-left: 10px;
}
.sheet-block-bo {
position: relative;
width: calc(100% + 15px);
height: 50px;
top: -10px;
}
.sheet-block-bo-texte {
}
.sheet-block-bo-input-texte {
position: relative;
}
/*---------- OPTIONS ----------*/
.sheet-opt-titre {
position: absolute;
width: 100%;
text-transform: uppercase;
font-size: 18px;
left: 30px;
}
.sheet-opt-content {
position: absolute;
width: calc(100% - 10px);
left: 5px;
top: 30px;
}
.sheet-opt-ligne {
position: relative;
width: 100%;
}
.sheet-opt-nom {
float: left;
width: 100%;
line-height: 25px;
overflow: hidden;
}
/* ===================================================== */
/* ===================== TEMPLATES ===================== */
/* ===================================================== */
.sheet-rolltemplate-aria1 {
border-color: #a69c73;
border-style: solid;
border-width: 2px;
background: #fcf8f2;
padding: 5px 5px;
padding-bottom: 1px;
font-family: 'Piazzolla', serif;
font-size: 10pt;
}
.sheet-rolltemplate-aria1 h1,
.sheet-rolltemplate-aria1 h2 {
margin: 0;
padding: 0;
line-height: 1;
}
.sheet-rolltemplate-aria1 h1 {
font-size: 16pt;
margin-bottom: 2px;
}
.sheet-rolltemplate-aria1 h2 {
border-bottom: 2px solid rgba(85, 78, 48, 0.20);
margin-bottom: 10px;
color: rgba(85, 78, 48, 1);
font-size: 12pt;
}
.sheet-rolltemplate-aria1 .sheet-aria1-body {
margin-left: 1px;
}
.sheet-rolltemplate-aria1 .sheet-aria1-roll {
margin-top: 10px;
text-align: center;
}
.sheet-rolltemplate-aria1 .sheet-aria1-footer {
width: 100%;
height: 10px;
}
.sheet-rolltemplate-aria1 .sheet-aria1-buttons {
text-align: center;
}
.sheet-rolltemplate-aria1 .sheet-aria1-buttons a {
background: rgba(85, 78, 48, 1);
padding: 5px;
color: white;
display: inline-block;
border: 1px solid white;
}
.sheet-rolltemplate-aria1 .sheet-aria1-buttons .sheet-aria1-buttontext {
font-style: italic;
}
.sheet-rolltemplate-aria1 .sheet-aria1-body .importantroll,
.sheet-rolltemplate-aria1 .sheet-aria1-body .fullcrit,
.sheet-rolltemplate-aria1 .sheet-aria1-body .fullfail,
.sheet-rolltemplate-aria1 .sheet-aria1-body .inlinerollresult,
.sheet-rolltemplate-aria1 .sheet-aria1-roll .importantroll,
.sheet-rolltemplate-aria1 .sheet-aria1-roll .fullcrit,
.sheet-rolltemplate-aria1 .sheet-aria1-roll .fullfail,
.sheet-rolltemplate-aria1 .sheet-aria1-roll .inlinerollresult {
border: none;
background: transparent;
font-family: inherit;
font-size: 18pt;
font-weight: bold;
}
.sheet-rolltemplate-aria1 .sheet-aria1-body .fullfail,
.sheet-rolltemplate-aria1 .sheet-aria1-roll .fullfail {
color: rgba(160, 50, 50, 1);
}
.sheet-rolltemplate-aria1 .sheet-aria1-body .fullcrit,
.sheet-rolltemplate-aria1 .sheet-aria1-roll .fullcrit {
color: rgba(50, 120, 50, 1);
}
+996
View File
@@ -0,0 +1,996 @@
<input type="hidden" name="attr_version" value="">
<input type="hidden" name="attr_life" value="">
<input type="hidden" name="attr_life_max" value="">
<input type="hidden" name="attr_totalrois" value="fiche">
<input type="hidden" name="attr_nameinrolls" value="1">
<div class="body">
<input type="hidden" class="tabstoggle" name="attr_optiontab" value="0">
<button type="action" class="l_options btn-min" name="act_options" title="Afficher/Cacher les options"></button>
<div class="options">
<h1>Options</h1>
<hr class="hr_opt">
<h3>Affichage des jets</h3> Chuchoter les jets au MJ :
<select class="opt-field" name="attr_privaterolls">
<option value="/w gm ">Oui (Toujours)</option>
<option value=" ">Non (Jamais)</option>
<option value="?{Chuchoter au MJ ?|Oui,/w gm |Non,}">Demander (Oui par défault)</option>
<option value="?{Chuchoter au MJ ?|Non,|Oui,/w gm }">Demander (Non par défault)</option>
</select>
<br> Afficher le nom du personnage lors des jets :
<select class="opt-field" name="attr_namerolls">
<option value="1">Oui (Toujours)</option>
<option value="0">Non (Jamais)</option>
<option value="3">Demander (Oui par défault)</option>
<option value="2">Demander (Non par défault)</option>
</select>
<hr class="hr_opt">
<h3>Calculs des compétences</h3>
<br>
<p style="position: relative; font-size: 10px; top: -30px; margin-bottom: -20px;"><b style="color: #cc0000;">/!\ Vos compétences seront réinitialisées pour être recalculées.</b></p>
Méthode 1 : Calculs prêts à jouer :
<button type="action" class="l_co-comp1-bu" name="act_co-comp1-bu" title="( ( Lien1 + Lien2 ) / 2 ) x 5">Calculer</button>
<br>
<input type="hidden" class="co-comp1-hi" name="attr_co_comp1" value="0">
<div class="co-comp1-div">
<p style="margin-top: 50px"><b>ATTENTION</b></p>
<p>Vos compétences seront réinitialisées pour être recalculées.</p>
<button type="action" class="l_calcul-comp1" name="act_calcul-comp1">Confirmer</button>
<button type="action" class="l_noconf1" name="act_noconf1">Annuler</button>
</div>
Méthode 2 : Calculs pour personnalisation de personnage :
<button type="action" class="l_co-comp2-bu" name="act_co-comp2-bu" title="( Lien1 + Lien2 ) x 2">Calculer</button>
<br>
<input type="hidden" class="co-comp2-hi" name="attr_co_comp2" value="0">
<p style="position: relative; font-size: 10px; top: -10px;">Il vous restera alors 50 points à répartir</p>
<div class="co-comp2-div">
<p style="margin-top: 50px"><b>ATTENTION</b></p>
<p>Vos compétences seront réinitialisées pour être recalculées.</p>
<button type="action" class="l_calcul-comp2" name="act_calcul-comp2">Confirmer</button>
<button type="action" class="l_noconf2" name="act_noconf2">Annuler</button>
</div>
<hr class="hr_opt">
</div>
<div class="fiche">
<div class="block-av-ca">
<!------------- AVENTURIER -------------->
<div class="titre t-aventurier">Aventurier</div>
<div class="av-nom">
<div class="av-texte">Nom :</div>
<input class="av-input-texte" name="attr_character_name" type="text" placeholder="" title="@{character_name}"> </div>
<div class="av-profession">
<div class="av-texte"> </div>
<input class="av-input-texte" name="attr_profession" type="text" placeholder="Profession" title="@{profession}"> </div>
<div class="av-age">
<div class="av-texte">Âge :</div>
<input class="av-input-texte" style="width: 50px; text-align: center;" name="attr_age" type="text" placeholder="" title="@{age}"> </div>
<!---------- CARACTERISTIQUES ----------->
<div class="titre t-carac">Caractéristiques</div>
<div class="ca-force">
<div class="ca-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Force}} {{character_name=@{nameinrolls}}} {{body=Force : @{force}}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="ca-texte">Force :</div>
<input class="ca-input-texte" name="attr_force" type="text" placeholder="" title="@{force}"> </div>
<div class="ca-dexterite">
<div class="ca-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Dextérité}} {{character_name=@{nameinrolls}}} {{body=Dextérité : @{dexterite}}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="ca-texte">Dextérité :</div>
<input class="ca-input-texte" name="attr_dexterite" type="text" placeholder="" title="@{dexterite}"> </div>
<div class="ca-endurance">
<div class="ca-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Endurance}} {{character_name=@{nameinrolls}}} {{body=Endurance : @{endurance}}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="ca-texte">Endurance :</div>
<input class="ca-input-texte" name="attr_endurance" type="text" placeholder="" title="@{endurance}"> </div>
<div class="ca-intelligence">
<div class="ca-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Intelligence}} {{character_name=@{nameinrolls}}} {{body=Intelligence : @{intelligence}}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="ca-texte">Intelligence :</div>
<input class="ca-input-texte" name="attr_intelligence" type="text" placeholder="" title="@{intelligence}"> </div>
<div class="ca-charisme">
<div class="ca-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Charisme}} {{character_name=@{nameinrolls}}} {{body=Charisme: @{charisme}}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="ca-texte">Charisme :</div>
<input class="ca-input-texte" name="attr_charisme" type="text" placeholder="" title="@{charisme}"> </div>
</div>
<!--------- VIVRE OU SURVIVRE ---------->
<div class="block-vi">
<div class="titre t-vivre">Vivre ou survivre</div>
<div class="vi-arme1">
<div class="vi-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Attaque}} {{character_name=@{nameinrolls}}} {{body=@{arme1} (@{degats1})}} {{roll=[[@{degats1}cf<0cs<0]]}}"></button>
</div>
<input class="vi-input-texte" name="attr_arme1" type="text" placeholder="" title="@{arme1}">
<input class="vi-input-texte-degats" name="attr_degats1" type="text" placeholder="" title="@{degats1}">
<div class="vi-texte1">Arme</div>
<div class="vi-texte2">Dégâts</div>
</div>
<div class="vi-arme2">
<div class="vi-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Attaque}} {{character_name=@{nameinrolls}}} {{body=@{arme2} (@{degats2})}} {{roll=[[@{degats2}cf<0cs<0]]}}"></button>
</div>
<input class="vi-input-texte" name="attr_arme2" type="text" placeholder="" title="@{arme2}">
<input class="vi-input-texte-degats" name="attr_degats2" type="text" placeholder="" title="@{degats2}">
<div class="vi-texte1">Arme</div>
<div class="vi-texte2">Dégâts</div>
</div>
<div class="vi-arme3">
<div class="vi-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Attaque}} {{character_name=@{nameinrolls}}} {{body=@{arme3} (@{degats3})}} {{roll=[[@{degats3}cf<0cs<0]]}}"></button>
</div>
<input class="vi-input-texte" name="attr_arme3" type="text" placeholder="" title="@{arme3}">
<input class="vi-input-texte-degats" name="attr_degats3" type="text" placeholder="" title="@{degats3}">
<div class="vi-texte1">Arme</div>
<div class="vi-texte2">Dégâts</div>
</div>
</div>
<!--------------- SANTE ---------------->
<div class="block-sa">
<div class="sa-vie">
<input class="sa-input-texte" name="attr_vie" type="text" value="0" placeholder="" title="@{vie} (ou @{life_max})">
<div class="sa-texte">Points de vie</div>
</div>
<div class="sa-blessures">
<input class="sa-input-texte" name="attr_blessures" type="text" value="0" placeholder="" title="@{blessures}">
<div class="sa-texte">Blessures</div>
</div>
<div class="sa-protection">
<input class="sa-input-texte" name="attr_protection" type="text" value="0" placeholder="" title="@{protection}">
<div class="sa-texte">Protection</div>
</div>
</div>
<!----------------- RP ------------------>
<div class="block-rp">
<div class="rp-genial">
<div class="rp-texte">JE SUIS GÉNIAL·E
<br>parce que...</div>
<textarea class="rp-input-texte" name="attr_genial" title="@{genial}"></textarea>
</div>
<div class="rp-problemes">
<div class="rp-texte">Mais LA SOCIÉTÉ A DES PROBLÈMES
<br>avec moi parce que...</div>
<textarea class="rp-input-texte" name="attr_problemes" title="@{problemes}"></textarea>
</div>
</div>
<hr class="hr1">
<!----------- COMPETENCES ------------>
<div class="block-co-titre">
<div class="co-titre1">Compétences</div>
<div class="co-titre2">Lien</div>
<div class="co-titre3">Score</div>
</div>
<div class="block-co">
<div class="comp co-artisanat">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Artisanat, construire}} {{character_name=@{nameinrolls}}} {{body=Artisanat, construire : @{artisanat}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Artisanat, construire</div>
<div class="co-lien">DEX/INT</div>
<div class="co-score">
<input class="co-input-texte" name="attr_artisanat" type="text" placeholder="" title="@{artisanat}">%</div>
</div>
<div class="comp co-combatrapp">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Combat rapproché}} {{character_name=@{nameinrolls}}} {{body=Combat rapproché : @{combatrapp}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Combat rapproché</div>
<div class="co-lien">FOR/DEX</div>
<div class="co-score">
<input class="co-input-texte" name="attr_combatrapp" type="text" placeholder="" title="@{combatrapp}">%</div>
</div>
<div class="comp co-combatdist">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Combat à distance}} {{character_name=@{nameinrolls}}} {{body=Combat à distance : @{combatdist}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Combat à distance</div>
<div class="co-lien">DEX/INT</div>
<div class="co-score">
<input class="co-input-texte" name="attr_combatdist" type="text" placeholder="" title="@{combatdist}">%</div>
</div>
<div class="comp co-connnature">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Connaissance de la nature}} {{character_name=@{nameinrolls}}} {{body=Connaissance de la nature : @{connnature}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Connaissance de la nature</div>
<div class="co-lien">DEX/INT</div>
<div class="co-score">
<input class="co-input-texte" name="attr_connnature" type="text" placeholder="" title="@{connnature}">%</div>
</div>
<div class="comp co-connsecret">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Connaissance des secrets}} {{character_name=@{nameinrolls}}} {{body=Connaissance des secrets : @{connsecret}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Connaissance des secrets</div>
<div class="co-lien">INT/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_connsecret" type="text" placeholder="" title="@{connsecret}">%</div>
</div>
<div class="comp co-courir">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Courir, sauter}} {{character_name=@{nameinrolls}}} {{body=Courir, sauter : @{courir}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Courir, sauter</div>
<div class="co-lien">DEX/END</div>
<div class="co-score">
<input class="co-input-texte" name="attr_courir" type="text" placeholder="" title="@{courir}">%</div>
</div>
<div class="comp co-discretion">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Discrétion}} {{character_name=@{nameinrolls}}} {{body=Discrétion : @{discretion}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Discrétion</div>
<div class="co-lien">DEX/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_discretion" type="text" placeholder="" title="@{discretion}">%</div>
</div>
<div class="comp co-droit">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Droit}} {{character_name=@{nameinrolls}}} {{body=Droit : @{droit}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Droit</div>
<div class="co-lien">INT/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_droit" type="text" placeholder="" title="@{droit}">%</div>
</div>
<div class="comp co-esquiver">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Esquiver}} {{character_name=@{nameinrolls}}} {{body=Esquiver : @{esquiver}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Esquiver</div>
<div class="co-lien">DEX/INT</div>
<div class="co-score">
<input class="co-input-texte" name="attr_esquiver" type="text" placeholder="" title="@{esquiver}">%</div>
</div>
<div class="comp co-intimiter">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Intimider}} {{character_name=@{nameinrolls}}} {{body=Intimider : @{intimider}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Intimider</div>
<div class="co-lien">FOR/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_intimider" type="text" placeholder="" title="@{intimider}">%</div>
</div>
<div class="comp co-lire">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Lire, écrire}} {{character_name=@{nameinrolls}}} {{body=Lire, écrire : @{lire}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Lire, écrire</div>
<div class="co-lien">INT/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_lire" type="text" placeholder="" title="@{lire}">%</div>
</div>
<div class="comp co-mentir">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Mentir, convaincre}} {{character_name=@{nameinrolls}}} {{body=Mentir, convaincre : @{mentir}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Mentir, convaincre</div>
<div class="co-lien">INT/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_mentir" type="text" placeholder="" title="@{mentir}">%</div>
</div>
<div class="comp co-perception">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Perception}} {{character_name=@{nameinrolls}}} {{body=Perception : @{perception}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Perception</div>
<div class="co-lien">INT/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_perception" type="text" placeholder="" title="@{perception}">%</div>
</div>
<div class="comp co-piloter">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Piloter}} {{character_name=@{nameinrolls}}} {{body=Piloter : @{piloter}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Piloter</div>
<div class="co-lien">DEX/END</div>
<div class="co-score">
<input class="co-input-texte" name="attr_piloter" type="text" placeholder="" title="@{piloter}">%</div>
</div>
<div class="comp co-psychologie">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Psychologie}} {{character_name=@{nameinrolls}}} {{body=Psychologie : @{psychologie}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Psychologie</div>
<div class="co-lien">END/INT</div>
<div class="co-score">
<input class="co-input-texte" name="attr_psychologie" type="text" placeholder="" title="@{psychologie}">%</div>
</div>
<div class="comp co-reflexes">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Réflexes}} {{character_name=@{nameinrolls}}} {{body=Réflexes : @{reflexes}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Réflexes</div>
<div class="co-lien">DEX/INT</div>
<div class="co-score">
<input class="co-input-texte" name="attr_reflexes" type="text" placeholder="" title="@{reflexes}">%</div>
</div>
<div class="comp co-serrures">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Serrures et pièges}} {{character_name=@{nameinrolls}}} {{body=Serrures et pièges : @{serrures}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Serrures et pièges</div>
<div class="co-lien">DEX/END</div>
<div class="co-score">
<input class="co-input-texte" name="attr_serrures" type="text" placeholder="" title="@{serrures}">%</div>
</div>
<div class="comp co-soigner">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Soigner}} {{character_name=@{nameinrolls}}} {{body=Soigner : @{soigner}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Soigner</div>
<div class="co-lien">INT/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_soigner" type="text" placeholder="" title="@{soigner}">%</div>
</div>
<div class="comp co-survie">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Survie}} {{character_name=@{nameinrolls}}} {{body=Survie : @{survie}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Survie</div>
<div class="co-lien">END/INT</div>
<div class="co-score">
<input class="co-input-texte" name="attr_survie" type="text" placeholder="" title="@{survie}">%</div>
</div>
<div class="comp co-voler">
<div class="co-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=Voler}} {{character_name=@{nameinrolls}}} {{body=Voler : @{voler}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-nom">Voler</div>
<div class="co-lien">INT/CHA</div>
<div class="co-score">
<input class="co-input-texte" name="attr_voler" type="text" placeholder="" title="@{voler}">%</div>
</div>
</div>
<!------ COMPETENCES SPECIALES ------->
<div class="block-co-sp-titre">
<div class="co-sp-titre1">Compétences spéciales</div>
<div class="co-sp-titre2">Lien</div>
<div class="co-sp-titre3">Score</div>
</div>
<div class="block-co-sp">
<div class="block-co-separateur"> </div>
<div class="comp-sp co-sp1">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp1-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp1-nom} : @{cosp1-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp1-nom" type="text" placeholder="" title="@{cosp1-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp1-lien1" type="text" placeholder="" title="@{cosp1-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp1-lien2" type="text" placeholder="" title="@{cosp1-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp1-score" type="text" placeholder="" title="@{cosp1-score}">%</div>
</div>
<div class="comp-sp co-sp2">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp2-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp2-nom} : @{cosp2-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp2-nom" type="text" placeholder="" title="@{cosp2-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp2-lien1" type="text" placeholder="" title="@{cosp2-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp2-lien2" type="text" placeholder="" title="@{cosp2-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp2-score" type="text" placeholder="" title="@{cosp2-score}">%</div>
</div>
<div class="comp-sp co-sp3">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp3-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp3-nom} : @{cosp3-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp3-nom" type="text" placeholder="" title="@{cosp3-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp3-lien1" type="text" placeholder="" title="@{cosp3-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp3-lien2" type="text" placeholder="" title="@{cosp3-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp3-score" type="text" placeholder="" title="@{cosp3-score}">%</div>
</div>
<div class="comp-sp co-sp4">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp4-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp4-nom} : @{cosp4-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp4-nom" type="text" placeholder="" title="@{cosp4-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp4-lien1" type="text" placeholder="" title="@{cosp4-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp4-lien2" type="text" placeholder="" title="@{cosp4-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp4-score" type="text" placeholder="" title="@{cosp4-score}">%</div>
</div>
<div class="comp-sp co-sp5">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp5-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp5-nom} : @{cosp5-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp5-nom" type="text" placeholder="" title="@{cosp5-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp5-lien1" type="text" placeholder="" title="@{cosp5-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp5-lien2" type="text" placeholder="" title="@{cosp5-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp5-score" type="text" placeholder="" title="@{cosp5-score}">%</div>
</div>
<div class="comp-sp co-sp6">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp6-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp6-nom} : @{cosp6-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp6-nom" type="text" placeholder="" title="@{cosp6-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp6-lien1" type="text" placeholder="" title="@{cosp6-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp6-lien2" type="text" placeholder="" title="@{cosp6-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp6-score" type="text" placeholder="" title="@{cosp6-score}">%</div>
</div>
<div class="comp-sp co-sp7">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp7-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp7-nom} : @{cosp7-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp7-nom" type="text" placeholder="" title="@{cosp7-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp7-lien1" type="text" placeholder="" title="@{cosp7-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp7-lien2" type="text" placeholder="" title="@{cosp7-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp7-score" type="text" placeholder="" title="@{cosp7-score}">%</div>
</div>
<div class="comp-sp co-sp8">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp8-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp8-nom} : @{cosp8-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp8-nom" type="text" placeholder="" title="@{cosp8-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp8-lien1" type="text" placeholder="" title="@{cosp8-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp8-lien2" type="text" placeholder="" title="@{cosp8-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp8-score" type="text" placeholder="" title="@{cosp8-score}">%</div>
</div>
<div class="comp-sp co-sp9">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp9-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp9-nom} : @{cosp9-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp9-nom" type="text" placeholder="" title="@{cosp9-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp9-lien1" type="text" placeholder="" title="@{cosp9-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp9-lien2" type="text" placeholder="" title="@{cosp9-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp9-score" type="text" placeholder="" title="@{cosp9-score}">%</div>
</div>
<div class="comp-sp co-sp10">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp10-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp10-nom} : @{cosp10-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp10-nom" type="text" placeholder="" title="@{cosp10-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp10-lien1" type="text" placeholder="" title="@{cosp10-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp10-lien2" type="text" placeholder="" title="@{cosp10-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp10-score" type="text" placeholder="" title="@{cosp10-score}">%</div>
</div>
<div class="comp-sp co-sp11">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp11-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp11-nom} : @{cosp11-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp11-nom" type="text" placeholder="" title="@{cosp11-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp11-lien1" type="text" placeholder="" title="@{cosp11-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp11-lien2" type="text" placeholder="" title="@{cosp11-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp11-score" type="text" placeholder="" title="@{cosp11-score}">%</div>
</div>
<div class="comp-sp co-sp12">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp12-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp12-nom} : @{cosp12-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp12-nom" type="text" placeholder="" title="@{cosp12-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp12-lien1" type="text" placeholder="" title="@{cosp12-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp12-lien2" type="text" placeholder="" title="@{cosp12-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp12-score" type="text" placeholder="" title="@{cosp12-score}">%</div>
</div>
<div class="comp-sp co-sp13">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp13-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp13-nom} : @{cosp13-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp13-nom" type="text" placeholder="" title="@{cosp13-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp13-lien1" type="text" placeholder="" title="@{cosp13-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp13-lien2" type="text" placeholder="" title="@{cosp13-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp13-score" type="text" placeholder="" title="@{cosp13-score}">%</div>
</div>
<div class="comp-sp co-sp14">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp14-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp14-nom} : @{cosp14-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp14-nom" type="text" placeholder="" title="@{cosp14-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp14-lien1" type="text" placeholder="" title="@{cosp14-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp14-lien2" type="text" placeholder="" title="@{cosp14-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp14-score" type="text" placeholder="" title="@{cosp14-score}">%</div>
</div>
<div class="comp-sp co-sp15">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp15-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp15-nom} : @{cosp15-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp15-nom" type="text" placeholder="" title="@{cosp15-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp15-lien1" type="text" placeholder="" title="@{cosp15-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp15-lien2" type="text" placeholder="" title="@{cosp15-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp15-score" type="text" placeholder="" title="@{cosp15-score}">%</div>
</div>
<div class="comp-sp co-sp16">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp16-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp16-nom} : @{cosp16-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp16-nom" type="text" placeholder="" title="@{cosp16-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp16-lien1" type="text" placeholder="" title="@{cosp16-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp16-lien2" type="text" placeholder="" title="@{cosp16-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp16-score" type="text" placeholder="" title="@{cosp16-score}">%</div>
</div>
<div class="comp-sp co-sp17">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp17-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp17-nom} : @{cosp17-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp17-nom" type="text" placeholder="" title="@{cosp17-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp17-lien1" type="text" placeholder="" title="@{cosp17-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp17-lien2" type="text" placeholder="" title="@{cosp17-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp17-score" type="text" placeholder="" title="@{cosp17-score}">%</div>
</div>
<div class="comp-sp co-sp18">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp18-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp18-nom} : @{cosp18-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp18-nom" type="text" placeholder="" title="@{cosp18-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp18-lien1" type="text" placeholder="" title="@{cosp18-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp18-lien2" type="text" placeholder="" title="@{cosp18-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp18-score" type="text" placeholder="" title="@{cosp18-score}">%</div>
</div>
<div class="comp-sp co-sp19">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp19-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp19-nom} : @{cosp19-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp19-nom" type="text" placeholder="" title="@{cosp19-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp19-lien1" type="text" placeholder="" title="@{cosp19-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp19-lien2" type="text" placeholder="" title="@{cosp19-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp19-score" type="text" placeholder="" title="@{cosp19-score}">%</div>
</div>
<div class="comp-sp co-sp20">
<div class="co-sp-button">
<button class="btn-min" type="roll" value="@{privaterolls}&{template:aria1} {{name=@{cosp20-nom}}} {{character_name=@{nameinrolls}}} {{body=@{cosp20-nom} : @{cosp20-score}%}} {{roll=[[1d100cf>96cs<5]]}}"></button>
</div>
<div class="co-sp-nom">
<input class="co-sp-input-nom" name="attr_cosp20-nom" type="text" placeholder="" title="@{cosp20-nom}">
</div>
<div class="co-sp-lien">
<input class="co-sp-input-lien" name="attr_cosp20-lien1" type="text" placeholder="" title="@{cosp20-lien1}"> /
<input class="co-sp-input-lien" name="attr_cosp20-lien2" type="text" placeholder="" title="@{cosp20-lien2}"> </div>
<div class="co-sp-score">
<input class="co-sp-input-score" name="attr_cosp20-score" type="text" placeholder="" title="@{cosp20-score}">%</div>
</div>
</div>
<hr class="hr2">
<!---------- POSSESSIONS/NOTES ----------->
<div class="block-po">
<div class="po-possessions">
<div class="po-texte">Possessions</div>
<textarea class="po-input-texte" name="attr_possessions" title="@{possessions}"></textarea>
<div class="block-bo">
<div class="block-bo-texte">
<div class="bo-texte">Couronnes</div>
<div class="bo-texte">Orbes</div>
<div class="bo-texte">Sceptres</div>
<div class="bo-texte">Rois</div>
</div>
<div class="block-bo-input-texte">
<input class="bo-input-texte" name="attr_couronnes" type="text" placeholder="0" title="@{couronnes}">
<input class="bo-input-texte" name="attr_orbes" type="text" placeholder="0" title="@{orbes}">
<input class="bo-input-texte" name="attr_sceptres" type="text" placeholder="0" title="@{sceptres}">
<input class="bo-input-texte" name="attr_rois" type="text" placeholder="0" title="@{rois} (ou @{totalrois} pour la fortune totale convertie en Rois)"> </div>
</div>
</div>
<div class="po-notes">
<div class="po-texte">Notes</div>
<textarea style="height: 190px;" class="po-input-texte po-input-notes" name="attr_notes" title="@{notes}"></textarea>
</div>
</div>
</div>
</div>
<!-- ==================================================== -->
<!-- ==================== TEMPLATES ===================== -->
<!-- ==================================================== -->
<rolltemplate class="sheet-rolltemplate-aria1">
<div class="sheet-aria1-container"> {{#name}}
<h1>{{name}} </h1> {{/name}} {{#character_name}}
<h2>{{character_name}} </h2> {{/character_name}}
<div class="sheet-aria1-body"> {{#body}} {{body}} {{/body}} </div>
<div class="sheet-aria1-roll"> {{#roll}} {{roll}} {{/roll}} </div>
<div class="sheet-aria1-buttons"> {{#buttons}} {{buttons}} {{/buttons}} </div>
<div class="sheet-aria1-footer"></div>
</div>
</rolltemplate>
<!-- ==================================================== -->
<!-- ==================== JAVASCRIPT ==================== -->
<!-- ==================================================== -->
<script type="text/worker">
on(`sheet:opened`, function(eventInfo) {
setAttrs({
"version": "1.0",
optiontab: "0",
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
});
on("change:namerolls change:character_name sheet:opened", function() {
getAttrs(["NAMEROLLS", "CHARACTER_NAME"], function(values) {
let namerolls = parseInt(values.NAMEROLLS) || 0;
let character_name = values.CHARACTER_NAME || 0;
if(namerolls === 1) {
setAttrs({
"nameinrolls": character_name
});
} else if(namerolls === 2) {
setAttrs({
"nameinrolls": "?{Afficher le nom du personnage ?|Non, |Oui," + character_name + "}"
});
} else if(namerolls === 3) {
setAttrs({
"nameinrolls": "?{Afficher le nom du personnage ?|Oui," + character_name + "|Non,-}"
});
} else {
setAttrs({
"nameinrolls": " "
});
}
});
});
on("change:vie change:blessures sheet:opened", function() {
getAttrs(["VIE", "BLESSURES"], function(values) {
let vie = parseInt(values.VIE) || 0;
let blessures = parseInt(values.BLESSURES) || 0;
let lifemax1 = vie;
let life1 = vie - blessures;
setAttrs({
"life": life1
});
setAttrs({
"life_max": lifemax1
});
});
});
on("change:life", function() {
getAttrs(["LIFE", "vie"], function(values) {
let life = parseInt(values.LIFE) || 0;
let vie1 = parseInt(values.vie) || 0;
let blessures1 = vie1 - life;
if(blessures1 > vie1) {
blessures1 = vie1;
}
if(blessures1 < 0) {
blessures1 = 0;
}
setAttrs({
"blessures": blessures1
});
});
});
on("change:couronnes change:orbes change:scepres change:rois sheet:opened", function() {
getAttrs(["COURONNES", "ORBES", "SCEPTRES", "ROIS"], function(values) {
let couronnes = parseInt(values.COURONNES) || 0;
let orbes = parseInt(values.ORBES) || 0;
let scepres = parseInt(values.SCEPTRES) || 0;
let rois = parseInt(values.ROIS) || 0;
let totalrois1 = (couronnes * 1000) + (orbes * 100) + (scepres * 10) + rois;
setAttrs({
"totalrois": totalrois1
});
});
});
const button_options = ["options"];
button_options.forEach(button => {
on(`clicked:${button}`, function() {
getAttrs(["OptionTab"], function(values) {
let OptionTab1 = values.OptionTab || 0;
if(OptionTab1 === "1") {
setAttrs({
optiontab: "0",
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
} else {
setAttrs({
optiontab: "1",
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
}
});
});
});
const button_co_comp1 = ["co-comp1-bu"];
button_co_comp1.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
co_comp1: "1",
co_comp2: "0",
co_comp3: "0",
optiontab: "1"
});
});
});
const button_co_comp2 = ["co-comp2-bu"];
button_co_comp2.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
co_comp2: "1",
co_comp1: "0",
co_comp3: "0",
optiontab: "1"
});
});
});
const button_co_comp3 = ["co-comp3-bu"];
button_co_comp3.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
co_comp3: "1",
co_comp1: "0",
co_comp2: "0",
optiontab: "1"
});
});
});
const button_noconf1 = ["noconf1"];
button_noconf1.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
});
});
const button_noconf2 = ["noconf2"];
button_noconf2.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
});
});
const button_noconf3 = ["noconf3"];
button_noconf3.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
});
});
const button_calcul_comp1 = ["calcul-comp1"];
button_calcul_comp1.forEach(button => {
on(`clicked:${button}`, function() {
getAttrs(["force", "dexterite", "endurance", "intelligence", "charisme"], function(values) {
let FOR = parseInt(values.force) || 0;
let DEX = parseInt(values.dexterite) || 0;
let END = parseInt(values.endurance) || 0;
let INT = parseInt(values.intelligence) || 0;
let CHA = parseInt(values.charisme) || 0;
let artisanat1 = Math.floor((DEX + INT) / 2) * 5;
let combatrapp1 = Math.floor((FOR + DEX) / 2) * 5;
let combatdist1 = Math.floor((DEX + INT) / 2) * 5;
let connnature1 = Math.floor((DEX + INT) / 2) * 5;
let connsecret1 = Math.floor((INT + CHA) / 2) * 5;
let courir1 = Math.floor((DEX + END) / 2) * 5;
let discretion1 = Math.floor((DEX + CHA) / 2) * 5;
let droit1 = Math.floor((INT + CHA) / 2) * 5;
let esquiver1 = Math.floor((DEX + INT) / 2) * 5;
let intimider1 = Math.floor((FOR + CHA) / 2) * 5;
let lire1 = Math.floor((INT + CHA) / 2) * 5;
let mentir1 = Math.floor((INT + CHA) / 2) * 5;
let perception1 = Math.floor((INT + CHA) / 2) * 5;
let piloter1 = Math.floor((DEX + END) / 2) * 5;
let psychologie1 = Math.floor((END + INT) / 2) * 5;
let reflexes1 = Math.floor((DEX + INT) / 2) * 5;
let serrures1 = Math.floor((DEX + END) / 2) * 5;
let soigner1 = Math.floor((INT + CHA) / 2) * 5;
let survie1 = Math.floor((END + INT) / 2) * 5;
let voler1 = Math.floor((INT + CHA) / 2) * 5;
setAttrs({
artisanat: artisanat1,
combatrapp: combatrapp1,
combatdist: combatdist1,
connnature: connnature1,
connsecret: connsecret1,
courir: courir1,
discretion: discretion1,
droit: droit1,
esquiver: esquiver1,
intimider: intimider1,
lire: lire1,
mentir: mentir1,
perception: perception1,
piloter: piloter1,
psychologie: psychologie1,
reflexes: reflexes1,
serrures: serrures1,
soigner: soigner1,
survie: survie1,
voler: voler1,
optiontab: "0",
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
});
});
});
const button_calcul_comp2 = ["calcul-comp2"];
button_calcul_comp2.forEach(button => {
on(`clicked:${button}`, function() {
getAttrs(["force", "dexterite", "endurance", "intelligence", "charisme"], function(values) {
let FOR = parseInt(values.force) || 0;
let DEX = parseInt(values.dexterite) || 0;
let END = parseInt(values.endurance) || 0;
let INT = parseInt(values.intelligence) || 0;
let CHA = parseInt(values.charisme) || 0;
let artisanat1 = (DEX + INT) * 2;
let combatrapp1 = (FOR + DEX) * 2;
let combatdist1 = (DEX + INT) * 2;
let connnature1 = (DEX + INT) * 2;
let connsecret1 = (INT + CHA) * 2;
let courir1 = (DEX + END) * 2;
let discretion1 = (DEX + CHA) * 2;
let droit1 = (INT + CHA) * 2;
let esquiver1 = (DEX + INT) * 2;
let intimider1 = (FOR + CHA) * 2;
let lire1 = (INT + CHA) * 2;
let mentir1 = (INT + CHA) * 2;
let perception1 = (INT + CHA) * 2;
let piloter1 = (DEX + END) * 2;
let psychologie1 = (END + INT) * 2;
let reflexes1 = (DEX + INT) * 2;
let serrures1 = (DEX + END) * 2;
let soigner1 = (INT + CHA) * 2;
let survie1 = (END + INT) * 2;
let voler1 = (INT + CHA) * 2;
setAttrs({
artisanat: artisanat1,
combatrapp: combatrapp1,
combatdist: combatdist1,
connnature: connnature1,
connsecret: connsecret1,
courir: courir1,
discretion: discretion1,
droit: droit1,
esquiver: esquiver1,
intimider: intimider1,
lire: lire1,
mentir: mentir1,
perception: perception1,
piloter: piloter1,
psychologie: psychologie1,
reflexes: reflexes1,
serrures: serrures1,
soigner: soigner1,
survie: survie1,
voler: voler1,
optiontab: "0",
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
});
});
});
// Méthode de calcul alternative. Non utilisée.
const button_calcul_comp3 = ["calcul-comp3"];
button_calcul_comp3.forEach(button => {
on(`clicked:${button}`, function() {
getAttrs(["force", "dexterite", "endurance", "intelligence", "charisme"], function(values) {
let FOR = parseInt(values.force) || 0;
let DEX = parseInt(values.dexterite) || 0;
let END = parseInt(values.endurance) || 0;
let INT = parseInt(values.intelligence) || 0;
let CHA = parseInt(values.charisme) || 0;
let artisanat1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(INT, 2)) * 2);
let combatrapp1 = Math.floor(Math.sqrt(Math.pow(FOR, 2) + Math.pow(DEX, 2)) * 2);
let combatdist1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(INT, 2)) * 2);
let connnature1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(INT, 2)) * 2);
let connsecret1 = Math.floor(Math.sqrt(Math.pow(INT, 2) + Math.pow(CHA, 2)) * 2);
let courir1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(END, 2)) * 2);
let discretion1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(CHA, 2)) * 2);
let droit1 = Math.floor(Math.sqrt(Math.pow(INT, 2) + Math.pow(CHA, 2)) * 2);
let esquiver1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(INT, 2)) * 2);
let intimider1 = Math.floor(Math.sqrt(Math.pow(FOR, 2) + Math.pow(CHA, 2)) * 2);
let lire1 = Math.floor(Math.sqrt(Math.pow(INT, 2) + Math.pow(CHA, 2)) * 2);
let mentir1 = Math.floor(Math.sqrt(Math.pow(INT, 2) + Math.pow(CHA, 2)) * 2);
let perception1 = Math.floor(Math.sqrt(Math.pow(INT, 2) + Math.pow(CHA, 2)) * 2);
let piloter1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(END, 2)) * 2);
let psychologie1 = Math.floor(Math.sqrt(Math.pow(END, 2) + Math.pow(INT, 2)) * 2);
let reflexes1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(INT, 2)) * 2);
let serrures1 = Math.floor(Math.sqrt(Math.pow(DEX, 2) + Math.pow(END, 2)) * 2);
let soigner1 = Math.floor(Math.sqrt(Math.pow(INT, 2) + Math.pow(CHA, 2)) * 2);
let survie1 = Math.floor(Math.sqrt(Math.pow(END, 2) + Math.pow(INT, 2)) * 2);
let voler1 = Math.floor(Math.sqrt(Math.pow(INT, 2) + Math.pow(CHA, 2)) * 2);
setAttrs({
artisanat: artisanat1,
combatrapp: combatrapp1,
combatdist: combatdist1,
connnature: connnature1,
connsecret: connsecret1,
courir: courir1,
discretion: discretion1,
droit: droit1,
esquiver: esquiver1,
intimider: intimider1,
lire: lire1,
mentir: mentir1,
perception: perception1,
piloter: piloter1,
psychologie: psychologie1,
reflexes: reflexes1,
serrures: serrures1,
soigner: soigner1,
survie: survie1,
voler: voler1,
optiontab: "0",
co_comp1: "0",
co_comp2: "0",
co_comp3: "0"
});
});
});
});
</script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 976 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

+8
View File
@@ -0,0 +1,8 @@
{
"html": "Aria.html",
"css": "Aria.css",
"authors": "PixelReveur",
"roll20userID": "982901",
"preview": "preview.png",
"instructions": "Feuille de personnage pour Aria."
}
@@ -0,0 +1,4 @@
.DS_Store
node_modules
package-lock.jdson
package-lock.json
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+21
View File
@@ -0,0 +1,21 @@
Roll20 Character Sheet Template
=======================
## Necessary files
For Roll20 the files you need are .css, .html, preview.png, and sheet.json. All the others are optional. They are intended to be used by front-end developers with NPM and compiled languages.
## NPM
This is a template uses [NPM](https://www.npmjs.com/get-npm) to develop character sheets.
Dependencies are outlined in the package.json. Just use `npm install` to download them.
Start the compiles for SCSS & PUG with `npm start`.
## Compile Files
If you wish to rename pug.pug and scss.scss be sure to update the package.json names.
## Unit Tests
QUnit is setup to do unit tests. Tests folder can be removed if you're not wriing tests.
@@ -0,0 +1,22 @@
{
"name": "sheettemplate",
"version": "1.0.0",
"description": "Character sheet development in VS Code",
"main": "index.js",
"dependencies": {
"node-sass": "^4.14.1",
"npm-run-all": "^4.1.5",
"pug": "^2.0.4",
"pug-cli": "^1.0.0-alpha6"
},
"scripts": {
"start": "npm-run-all --parallel compile:sass compile:pug",
"compile:sass": "node-sass ./src/BlackVoid.scss ./BlackVoid.css -w",
"compile:pug": "pug src/BlackVoid.pug -o ./ -w"
},
"keywords": [
"Roll20"
],
"author": "Cassie Levett",
"license": "ISC"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

@@ -0,0 +1,8 @@
{
"html": "BlackVoid.html",
"css": "BlackVoid.css",
"authors": "Cassie Levett",
"roll20userid": "557736",
"preview": "preview.png",
"instructions": "Black Void character sheet created for Penny For A Tale"
}
@@ -0,0 +1,30 @@
input(name='attr_version' type='hidden' value='1')
//- VARIABLES
=============================
include pug/abstracts/variables.pug
//- INCLUDES
=============================
include pug/abstracts/mixins.pug
//- TABS
=============================
input.type(name='attr_sheet_type' type='hidden' value='character')
input.display_string(name='attr_character_settings' type='hidden' value='')
//-PC SHEET
=============================
include pug/pages/pc.pug
//-FOOTER
=============================
include pug/layout/footer.pug
//-ROLL TEMPLATE
=============================
include pug/components/rolltemplates.pug
//- SCRIPTS
script(type="text/worker")
include js/scripts.js
@@ -0,0 +1,64 @@
// COLORS & OTHER VARIABLES
// ============================= *
@import 'scss/abstracts/mixins';
@import 'scss/abstracts/placeholders';
@import 'scss/abstracts/variables';
/* GLOBAL SETTINGS
============================= */
@import 'scss/base/base';
@import 'scss/base/utilities';
@import 'scss/base/typography';
/* GRID
============================= */
@import 'scss/layout/grid';
span.sheet-display {
border-bottom: 2px dotted $dark;
padding-top: 3%;
}
input.sheet-toggles {
position: relative;
opacity: 0;
width: 100%;
z-index: 2;
&:checked + span {
color: $primary;
margin-left: 5%;
}
}
/* HEADER
============================= */
@import 'scss/layout/header';
/* PC
============================= */
@import 'scss/pages/pc';
/* REPEATING SECTIONS
============================= */
@import 'scss/components/repeating_container';
/* SHOW & HIDE SECTIONS
============================= */
@import 'scss/layout/hide';
/* SWITCH
============================= */
@import 'scss/components/switch';
/* STYLED CHECKBOXES
============================= */
@import 'scss/components/checkbox';
/* FOOTER
============================= */
@import 'scss/layout/footer';
/* ROLL TEMPLATE STYLE
============================= */
@import 'scss/components/rolltemplate';
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 49 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 119 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 118 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 117 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,53 @@
//Convert Integers to be Negative
const convertIntegerNegative = number => number > 0 ? -Math.abs(number) : number
//Convert an object with negative numbers
const convertIntegersNegatives = numbers => {
numbers => {
for (let [key, value] of Object.entries(numbers)) {
numbers[key] = convertIntegerNegative(value);
}
return numbers
}
}
//Pass in eventinfo.triggerName
const findRepeatingField = trigger => trigger.split('_')[1]
//Pass in eventinfo.triggerName
const getReprowid = trigger => {
const split = trigger.split('_');
return `${split[0]}_${split[1]}_${split[2]}`
}
//Pass in an object keep that has the repeating section
//Example repeating_weapon_-m1czg68yzicwhfdpyys_name
const getReprowAttribute = key => {
const getReprowid = processingFunctions.getReprowid(key)
return key.split(`${getReprowid}_`)[1]
}
//Provide the function with an array of keys to find transations for
//Example ['strenght', 'agility', 'willpower']
const getTranslations = translationKeys => {
let translations = {}
translationKeys.forEach(key => translations[`${key}`] = getTranslationByKey(key))
return translations
}
const parseInteger = string => parseInt(string) || 0
//Use for convernting the result of getAttrs from strings into integers
const parseIntegers = numbers => {
for (let [key, value] of Object.entries(numbers)) {
numbers[key] = parseInt(value) || 0
}
return numbers
}
const setAttributes = (update, silent) => silent && typeof update === 'object' ? setAttrs(update, {silent:true}) : typeof update === 'object' ? setAttrs(update) : console.error(`${update} is not an object`)
//returns strength from @{strenght}
const sliceAttr = attribute => attribute.slice(2, -1)
const sumIntegers = numbers => numbers.reduce((a,b) => a + b, 0)
@@ -0,0 +1,35 @@
let attributes = {};
let sectionIDS = {};
const maxAsyncDelay = 2000;
const getRandomInt = function(max) {
return Math.floor(Math.random() * Math.floor(max));
};
const getAttrs = function(attrs, callback) {
let values = {};
setTimeout(() => {
attrs.forEach(i => {
if(i in attributes) values[i] = attributes[i];
});
callback(values);
}, getRandomInt(maxAsyncDelay));
};
const setAttrs = function(attrs, callback) {
let values = {};
setTimeout(() => {
Object.keys(attrs).forEach(key => {
attributes[key] = attrs[key];
//Notify all components
let components = document.querySelectorAll(`[name|="attr_${key}"]`);
components.forEach(c => {
c.value = attrs[key];
});
});
callback(attributes);
}, getRandomInt(maxAsyncDelay));
};
const getSectionIDs = function(section, callback) {
setTimeout(() => {
let ids = sectionIDS[section] || [];
callback(ids);
}, getRandomInt(maxAsyncDelay));
};
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>dropFunctions</title>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.9.2.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="https://code.jquery.com/qunit/qunit-2.9.2.js"></script>
<script src="./Mocks/Mocks.js"></script>
<script src="../scripts.js"></script>
<script src="./tests.js"></script>
</body>
</html>
@@ -0,0 +1,8 @@
QUnit.module('Unit tests', {
before: () => maxAsyncDelay = 100, //Sets the mock delay for getAttrs and setAttrs to a maximum of 1000ms.
beforeEach: () => {
//Resets attributes before each test
attributes = {}
sectionIDS = {}
}
})
@@ -0,0 +1,69 @@
- const buttonName = name => name.replace(/ /g, '-');
- const attrName = name => name.replace(/ /g, '_');
- const removeSpace = name => name.replace(/ /g, '');
- const toLowerCase = name => name.toLowerCase();
mixin textInput(name)
label(data-i18n-title=`enter ${name}` title=`enter ${name}`)
input(data-i18n-placeholder=name name=`attr_${attrName(name)}` title=`@{${attrName(name)}}` type='text' value='')
mixin numberInput(name)
label(data-i18n-title=`enter ${name}` title=`enter ${name}`)
input(name=`attr_${attrName(name)}` placeholder='0' title=`@{${attrName(name)}}` type='number' value='0')
mixin checkboxInput(name)
label.styled-checkbox.grid(data-i18n-title=`toggle ${name}` title=`enter ${name}`)
input(name=`attr_${attrName(name)}` title=`@{${attrName(name)}}` type='checkbox' value=name)
span.pictos 3
mixin radioInput(name, value)
label.styled-checkbox.grid(data-i18n-title=`${name}` title=`select ${name}`)
input(name=`attr_${attrName(name)}` title=`@{${attrName(name)}}` type='radio' value=value)
span.pictos 3
mixin checkboxSymbol(name, symbol)
input.toggles.text-center(name=`attr_${attrName(name)}` title=`@{${attrName(name)}}` type='checkbox' value=name)
span.toggles.text-center.pictos #{symbol}
mixin textarea(name)
textarea(name=`attr_${attrName(name)}` data-i18n-placeholder=name)
- const rollTemplate = modifier => `1d12+(${modifier})+(?{Modifiers +/-|0})`
mixin traitButton(name)
button(data-i18n=name name=`roll_${buttonName(name)}` type='roll' value!=`&{template:rolls} {{header=^{${name}}}} {{dice=[[${rollTemplate(`@{${name}_modifier}`)}]]}}`)
mixin skillButton(name)
button.text-left.font-weight-bold(name=`roll_${buttonName(name)}` type='roll' value!=`&{template:rolls} {{header=@{name}}} {{dice=[[${rollTemplate('@{trait_modifier}+@{rank}+@{modifier}')}]]}}`)
span(name='attr_name')
mixin repeatingRollButton(name)
button.text-left.font-weight-bold(name=`roll_${buttonName(name)}` type='roll' value!=`&{template:rolls} {{header=@{name}}} {{desc=@{description}}}`)
span(name='attr_name')
mixin repeatingWeaponButton(name)
button.text-left.font-weight-bold(name=`roll_${buttonName(name)}` type='roll' value!=`&{template:rolls} {{header=@{name}}} {{dice=[[${rollTemplate('@{attack_modifier}')}]]}} {{damage=^{damage} @{damage}}}`)
span(name='attr_name')
mixin repeatingText(name)
fieldset(class=`repeating_${buttonName(name)}`)
.rowx.grid.descriptor
button.text-left.font-weight-bold(name='roll_button' type='roll')
span(name='attr_name')
+checkboxSymbol('collapse', 'i')
+checkboxSymbol('settings', 'p')
.rowx.collapse
span.collapse.description(name='attr_description')
.rowx.settings
+textInput(`name`)
+textarea('description')
include mixins/repeatingBenefits.pug
include mixins/repeatingPowers.pug
include mixins/repeatingWithChecks.pug
include mixins/repeatingSkills.pug
include mixins/repeatingWeapons.pug
@@ -0,0 +1,35 @@
mixin repeatingBenefits(name)
fieldset(class=`repeating_${buttonName(name)}`)
.rowx.grid.descriptor
+repeatingRollButton(name)
+checkboxSymbol('collapse', 'i')
+checkboxSymbol('settings', 'p')
.rowx.collapse
.grid.header
.row
h3.font-smallcaps(data-i18n='benefit')
.grid.text-center.2autocolumn
h3.font-smallcaps(data-i18n='type')
span.text-capitalize(name='attr_type')
.grid.text-center.2autocolumn
h3.font-smallcaps(data-i18n='cost')
span(name='attr_cost')
.row
span.collapse.description(name='attr_description')
.rowx.settings
.grid.mb-1
.grid.2autocolumn.mb-2
h3.font-smallcaps(data-i18n='name')
+textInput(`name`)
.grid.2column
.grid.column.2autocolumn
h3.font-smallcaps(data-i18n='type')
select(name='attr_type')
each val in ['attribute', 'background', 'talent', 'other']
option(data-i18n=val value=val)
.grid.column.2autocolumn
h3.font-smallcaps(data-i18n='cost')
+textInput(`cost`)
.row
h3.font-smallcaps(data-i18n='benefit')
+textarea('description')
@@ -0,0 +1,29 @@
mixin repeatingPowers(name)
fieldset(class=`repeating_${buttonName(name)}`)
.rowx.grid.descriptor
+repeatingRollButton(name)
.row.text-center
span(name='attr_rank')
+checkboxSymbol('collapse', 'i')
+checkboxSymbol('settings', 'p')
.rowx.collapse
.grid
h3.font-smallcaps(data-i18n='description')
h3.font-smallcaps(data-i18n='cost')
span.text-center(name='attr_cost')
.row
span.collapse.description(name='attr_description')
.rowx.settings
.grid.2autocolumn.mb-1
h3.font-smallcaps(data-i18n='name')
+textInput(`name`)
.grid.2column.mb-1
.grid.2autocolumn
h3.font-smallcaps(data-i18n='cost')
+textInput(`cost`)
.grid.2autocolumn
h3.font-smallcaps(data-i18n='rank')
+numberInput(`rank`)
.row
h3.font-smallcaps(data-i18n='description')
+textarea('description')
@@ -0,0 +1,38 @@
mixin repeatingSkills(name)
fieldset(class=`repeating_${buttonName(name)}`)
.rowx.grid.descriptor
+skillButton(name)
.row.ellipsis.text-center
span(name='attr_specialization')
.row.text-center
span(name='attr_rank')
+checkboxSymbol('collapse', 'i')
+checkboxSymbol('settings', 'p')
.rowx.collapse
.grid.benefit-cost-row
h3.font-smallcaps(data-i18n='description')
h3.font-smallcaps(data-i18n='cost')
span.text-center(name='attr_cost')
.row
span.collapse.description(name='attr_description')
.rowx.settings
.grid.mb-1
h3.font-smallcaps(data-i18n='name')
+textInput(`name`)
h3.font-smallcaps(data-i18n='rank')
+numberInput(`rank`)
.grid.mb-1
h3.font-smallcaps(data-i18n='specialization')
+textInput(`specialization`)
h3.font-smallcaps(data-i18n='cost')
+textInput(`cost`)
.grid.mb-1
h3.font-smallcaps(data-i18n='trait')
select(name='attr_trait_modifier' value='@{agility_modifier}')
each val in trait
option(data-i18n=val value=`@{${val}_modifier}`)
h3.font-smallcaps(data-i18n='modifier')
+numberInput(`modifier`)
.row
h3.font-smallcaps(data-i18n='description')
+textarea('description')
@@ -0,0 +1,23 @@
mixin repeatingWeapons(name)
fieldset(class=`repeating_${buttonName(name)}`)
.rowx.grid.descriptor
+repeatingWeaponButton(name)
each val in weaponFields
.grid.column.text-center.mb-2.ellipsis(class=val)
span(name=`attr_${attrName(val)}`)
+checkboxSymbol('collapse', 'i')
+checkboxSymbol('settings', 'p')
.rowx.collapse
each val in ['properties', 'special', 'description']
.row.mb-1
h3(data-i18n=val)
span.collapse.description(name=`attr_${val}`)
.rowx.settings
.grid.weapon.mb-1
each val in ['name', ...weaponFields]
.grid.mb-2(class=val)
h3.font-smallcaps(data-i18n=val)
+textInput(val)
.row
h3.font-smallcaps(data-i18n='description')
+textarea('description')
@@ -0,0 +1,12 @@
mixin repeatingWithChecks(name)
fieldset(class=`repeating_${buttonName(name)}`)
.rowx.grid.descriptor
+checkboxInput('check')
+repeatingRollButton(name)
+checkboxSymbol('collapse', 'i')
+checkboxSymbol('settings', 'p')
.rowx.collapse
span.collapse.description(name='attr_description')
.rowx.settings
+textInput(`name`)
+textarea('description')
@@ -0,0 +1,6 @@
- const imgsrc = 'https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/'
- const trait = ['intellect', 'agility', 'persuasion', 'awareness', 'presence', 'stamina', 'willpower', 'strength'];
- const movementSpeeds = ['walking speed', 'running speed (x2)', 'sprinting speed (x4)']
- const defenceValues = ['agility modifier', 'skill modifier', 'shield modifier', 'other modifiers']
- const weaponFields = ['type', 'size', 'range', 'attack modifier', 'speed', 'damage', 'properties', 'special']
@@ -0,0 +1,20 @@
.rolltemplates
rolltemplate.sheet-rolltemplate-rolls
.sheet-template-container
// - Display a header on the template -
.sheet-template-header
| {{#header}}{{header}}{{/header}}
// - Display the dice roll in the template -
.sheet-template-body
| {{#dice}}
.sheet-template-row {{dice}}
| {{/dice}}
| {{#damage}}
.sheet-template-row.sheet-template-damage
span.sheet-template-desc {{damage}}
| {{/damage}}
// - Display a description. This is great for text included with a roll -
| {{#desc}}
.sheet-template-row
span.sheet-template-desc {{desc}}
| {{/desc}}
@@ -0,0 +1,5 @@
.footer
span Version
span(name='attr_version')
span Original template created by Emerald Productions, LLC
img(src="https://raw.githubusercontent.com/clevett/roll20-SheetTemplate/master/src/imgs/EProd_Emerald_Gloss.png", alt="Emerald Productions logo of an E")
@@ -0,0 +1,174 @@
.pc.character.container
input(name='attr_page' type='hidden' value='one')
include pc/header.pug
.page-one
.grid.box
include pc/page-one/character-info.pug
.grid.3column.personality-row
.grid.column.personality
.row
h2.text-center.text-uppercase(data-i18n='personality')
each val in ['desire and motivation', 'dislikes secrets regrets', 'philosophy principles']
.row
h3.colon.font-smallcaps(data-i18n=val)
+textarea(val)
.grid.column.mannerism
.row
h2.text-center.text-uppercase(data-i18n='mannerism')
each val in ['quirk and habits', 'sayings']
.row
h3.colon.font-smallcaps(data-i18n=val)
+textarea(val)
.grid.column.origin
.row
h2.text-center.text-uppercase(data-i18n='origin')
.row
h3.colon.font-smallcaps(data-i18n='ancestry and relations')
+textarea('ancestry and relations')
.grid.2autocolumn.bottom-border
h3.colon.font-smallcaps(data-i18n='caste')
+textInput('caste')
.row
h3.colon.font-smallcaps(data-i18n='faction and allegiance')
+textarea('faction and allegiance')
each val in ['occupation', 'patron']
.grid.2autocolumn.bottom-border
h3.colon.font-smallcaps(data-i18n=val)
+textInput(val)
.mt-1.wastah-section
.column.wastah
.row.mt-1.mb-1.box
.row
h2.text-center.text-uppercase(data-i18n='wastah')
.repeating-container
+repeatingWithChecks('wastah')
include pc/page-one/sanity.pug
.grid.column.traits
.grid.experience.4column
.row.header
h2.text-center.text-uppercase(data-i18n=val)
.row.input
+numberInput('experience points')
each val in trait
.grid.trait.4column(class=val)
.row.header
+traitButton(val)
.row.modifier
+numberInput(`${val} modifier`)
.row.score
+numberInput(`${val} score`)
.column.enlightenment
.row.mt-1.mb-1.box
.row
h2.text-center.text-uppercase(data-i18n='enlightenment')
.repeating-container
+repeatingWithChecks('enlightenment')
include pc/page-one/health.pug
include pc/page-one/skills.pug
.page-two
.character-history
.grid.box.mb-2
each val in ['character history', 'friend allies', 'known enemies', 'notable people', 'notable experiences']
.rowx.grid
.header
h2.font-smallcaps(data-i18n=val)
+checkboxSymbol(`${val} collapse`, 'i')
+checkboxSymbol(`${val} settings`, 'p')
.collapse
span(name=`attr_${attrName(val)}`)
.settings
+textarea(val)
.mt-1.movement-section
.column.movement-column
.grid.box.movement
.text-center
h2(data-i18n='movement')
span.subheader(data-i18n='(km/hour)')
each val in movementSpeeds
- const attrName = val.includes(' (') ? val.split(' (')[0] : val
.grid.2autocolumn
h3.font-smallcaps.colon(data-i18n=val)
+textInput(attrName)
.grid.2autocolumn
h3.font-smallcaps.colon(data-i18n='other modifiers')
+textInput('speed modifier')
.grid.2autocolumn.speed
.header
h3.font-smallcaps.colon(data-i18n='combat speed')
span.subheader(data-i18n='(meters/round)')
.speed-total
+numberInput('combat speed')
.grid.box.defence-value
.grid
h2(data-i18n="defence value")
each val in defenceValues
.grid.2autocolumn
h3.font-smallcaps.colon(data-i18n=val)
+textInput(val)
.grid.2autocolumn
.header
h3.text-uppercase(data-i18n='defence value')
.defence-value-total
+numberInput('defence value')
.column.armor-column
.grid.header
h2(data-i18n="armour, tattoo's & graftings")
.grid.content
each val in ['head', 'torso', 'arms', 'legs']
.grid.armor(class=val)
.grid.column.armour-input
.header
h3.text-center(data-i18n=val)
+numberInput(val)
.grid.column.body
+textarea(`${val} description`)
.grid.2column
.grid.column
.grid.header
h3.colon.text-center(data-i18n='bulk, properties, & other')
.grid
+textarea('bulk')
.grid.column.damage-reduction.2autocolumn
.header
h2(data-i18n='damage reduction')
span.subheader(data-i18n='(accumulated total)')
.grid.content
+numberInput('damage reduction')
.column.wealth-column
.grid.box.wealth
h2(data-i18n='wealth')
+textarea('wealth')
.grid.box.property
h2(data-i18n='property / assets')
+textarea('property assets')
.mt-1.box.equipment-section
.row
h2.text-uppercase.text-center(data-i18n='equipment')
.grid.equipment
+textarea('equipment')
.mt-1.box.weapons-section
.grid.headers
h2.text-uppercase.text-left(data-i18n='weapons')
each val in weaponFields
h3.text-center.font-smallcaps(data-i18n=val)
.grid.weapons
.repeating-container
+repeatingWeapons('weapons')
@@ -0,0 +1,17 @@
.grid.logo-row.mb-2
.column.grid.2autocolumn.bottom-border
h2.colon.font-smallcaps(data-i18n='player name')
+textInput('player name')
.column.grid.page-select
.header
h2.colon.font-smallcaps(data-i18n='page')
.grid.button
input(name='attr_page' type='radio' value='one' checked)
.option
span 1
.grid.button
input(name='attr_page' type='radio' value='two')
.option
span 2
.column.grid.logo
img(src=`${imgsrc}/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/logo.png` alt='Black Void')
@@ -0,0 +1,19 @@
.grid.mb-2.character-info
.grid.bottom-border.name-row
each val in ['name', 'species', 'homeworld']
.column.grid.2autocolumn
h2.colon.font-smallcaps(data-i18n=val)
+textInput(val)
.grid.bottom-border.5column.gender-row
each val in ['gender', 'age', 'skin', 'eyes', 'hair']
.column.grid.2autocolumn
h2.colon.font-smallcaps(data-i18n=val)
+textInput(val)
.grid.bottom-border.2column.build-row
each val in ['build', 'appearence']
.column.grid.2autocolumn
h2.colon.font-smallcaps(data-i18n=val)
+textInput(val)
.grid.bottom-border
+textInput('notes')
@@ -0,0 +1,26 @@
.grid.health-row
.grid.health
.grid.column.input
+numberInput('health')
.grid.column.header
h2.text-uppercase(data-i18n='health')
.grid.total
.grid.column.input
+numberInput('total health')
.grid.column.header
h2.font-smallcaps(data-i18n='total health')
.grid.anxious-hurt
.grid.column.input
+numberInput('hurt')
.grid.column.header
h2.font-smallcaps(data-i18n='hurt (-1 penality)')
.grid.disturbed-injured
.grid.column.input
+numberInput('injured')
.grid.column.header
h2.font-smallcaps(data-i18n='injured (-3 penality)')
.grid.dead
.grid.column.input
+numberInput('dead')
.grid.column.header
h2.text-uppercase(data-i18n='dead')
@@ -0,0 +1,24 @@
.grid.sanity-row
.grid.sanity
.grid.column.input
+numberInput('sanity')
.grid.column.header
h2.text-uppercase(data-i18n='sanity')
.grid.total
.grid.column.input
+numberInput('total sanity')
.grid.column.header
h2.font-smallcaps(data-i18n='total sanity')
.grid.anxious-hurt
.grid.column.input
+numberInput('anxious')
.grid.column.header
h2.font-smallcaps(data-i18n='anxious (+1 to madness)')
.grid.disturbed-injured
.grid.column.input
+numberInput('disturbed')
.grid.column.header
h2.font-smallcaps(data-i18n='disturbed (+3 to madness)')
.grid.2autocolumn.madness
h2.text-uppercase(data-i18n='madness')
+textInput('madness')
@@ -0,0 +1,31 @@
.skills-row
.column.benefits
.grid.box.mb-2.benefit
.grid
h2.text-uppercase(data-i18n='Background / Attributes / Talents')
.repeating-container
+repeatingBenefits('benefit')
.grid.powers.box
.grid.box
.grid.header
h2.text-uppercase(data-i18n='powers')
h3.font-smallcaps.text-center(data-i18n='rank')
.repeating-container
+repeatingPowers('powers')
.column.skills
.grid.box.mb-2
.grid.header
h2.text-uppercase(data-i18n='skills')
h3.font-smallcaps.text-center(data-i18n='specialization')
h3.font-smallcaps.text-center(data-i18n='rank')
.repeating-container
+repeatingSkills('skills')
.grid.box
.grid.header
h2.text-uppercase(data-i18n='combat skills')
h3.font-smallcaps.text-center(data-i18n='specialization')
h3.font-smallcaps.text-center(data-i18n='rank')
.repeating-container
+repeatingSkills('combat skills')
@@ -0,0 +1,23 @@
@mixin traitImage($image) {
background-image: $image;
background-position: center;
background-repeat: no-repeat;
background-size: contain;
content: '';
height: 100%;
position: absolute;
width: 100%;
z-index: -1;
}
@mixin collapseSettingsInputs($endColumn) {
input[name*='collapse'],
input[name*='collapse'] + span {
grid-area: #{1} / #{$endColumn - 1} / #{1} / #{$endColumn - 1};
}
input[name*='settings'],
input[name*='settings'] + span {
grid-area: #{1} / $endColumn / #{1} / $endColumn;
}
}
@@ -0,0 +1,36 @@
%middle-column {
margin: 0px 0.5%;
vertical-align: top;
width: 50%;
}
%partial-column {
display: inline-block;
vertical-align: top;
width: 24.5%;
}
%circle-input {
label {
display: grid;
& > input {
height: 4.5rem;
width: 4.5rem;
border: none;
border-radius: 10rem;
align-self: center;
justify-self: center;
position: relative;
z-index: 2;
}
}
}
%display-block {
display: block;
}
%display-none {
display: none;
}
@@ -0,0 +1,24 @@
$primary: rgb(131, 50, 71);
$secondary:rgb(91, 28, 42);
$light: #b9dadf;
$dark: hsl(0, 6%, 0%);
$dark-font: #000;
$gray:#e4e5e6;
$transparentGray: hsla(0, 0%, 30%, 0.0784313725490196);
$white: hsl(0, 0%, 96%);
//Box Shadows
$box-shadow: inset 0px 0px 3px 1px rgba($dark, .3);
$box-shadow-outset: -1px -1px 1px 1px rgba($dark, .5);
//Transition buttons
$button-scale-small: scale(1.05);
$button-scale-medium: scale(1.3);
$trait-circle1: url('https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/Traitcircle1.svg');
$trait-circle2: url('https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/Traitcircle2.svg');
$trait-circle3: url('https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/Traitcircle3.svg');
$trait-circle4: url('https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/Traitcircle4.svg');
$trait-inner-circle1: url('https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/TraitInnerCircle1.svg');
$trait-inner-circle2: url('https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/TraitInnerCircle2.svg');
$silhouette: url('https://raw.githubusercontent.com/clevett/roll20-character-sheets/blackvoidv1/Black%20Void%20by%20Penny%20for%20a%20Tale/src/imgs/Silhouette.png');
@@ -0,0 +1,153 @@
/* GLOBAL SETTINGS
============================= */
* {
box-sizing: border-box;
font-family: sans-serif;
margin: 0;
padding: 0;
font-size: 62.5%; //1rem = 10px
}
button {
font-family: serif;
transition: all .2s;
box-shadow: $box-shadow-outset;
@extend .sheet-ellipsis;
@extend .sheet-font-smallcaps;
&:before {
display: none;
}
&:focus,
&:hover,
&:active {
background: none;
background-color: $primary !important;
color: $white;
transform: $button-scale-small;
box-shadow: none;
}
&[type="roll"],
&[type="action"] {
background-color: $white;
border: {
bottom : 1px solid #666;
bottom-right-radius: 1px;
color : hsl(0, 0%, 70%);
radius : 0.25rem;
right : 0.02rem solid hsl(0, 0%, 20%);
style : outset;
}
padding: 0.2rem 0.5rem !important;
}
}
div {
background-color: transparent;
width: 100%;
}
fieldset {
background-color: transparent;
}
h2 {
&.sheet-label {
border-bottom: 0.15em solid $dark;
text-align: center;
margin-left: 3%;
}
}
%placeholder {
&:placeholder-shown {
border: 0.1em dotted $primary;
background-color: #96939326;
}
&:hover, &:focus {
color: $white;
background-color: $secondary;
}
}
input {
&[type="text"],
&[type="number"] {
background-color: transparent;
border: {
left : 0rem;
radius: 0rem;
right : 0rem;
top : 0rem;
};
height: 2.1rem;
width: 100%;
@extend %placeholder;
}
&[type='number'] {
text-align: center;
width: 100%;
}
&::-webkit-outer-spin-button,
&::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
}
label {
margin-bottom: 0px;
padding-right: 0px;
}
select {
margin-bottom: 0px;
vertical-align: bottom;
border: 2px solid $primary;
font-size: 1.5rem;
font-weight: bold;
text-transform: capitalize;
width: 100%;
}
option {
font-size: 1.5rem;
}
span {
font-size: 1.5rem;
word-break: break-word;
}
textarea {
background-color: transparent;
text-align: left;
border: none;
font-size : 1.5rem;
font-weight : normal;
min-height : 5rem;
line-height : 1.8rem;
overflow : hidden;
overflow-wrap : break-word;
padding : 2px;
resize : vertical;
vertical-align: top;
overflow: scroll;
@extend %placeholder;
}
.charsheet {
width: 880px;
div.sheet-row {
display: inline-grid;
}
}
@@ -0,0 +1,58 @@
h1 {
color: $primary;
text-transform: capitalize;
font-family: serif;
font-size: 2.5rem;
}
h2 {
font-size: 1.5rem;
line-height: 2rem;
text-transform: capitalize;
}
h3 {
font-size: 1.25rem;
line-height: 2rem;
text-transform: capitalize;
}
label {
font-size: 3rem;
}
.sheet-pictos {
font-family: "pictos";
}
.sheet-d20 {
font-family: "dicefontd20";
}
.sheet-font-smallcaps {
font-variant: small-caps;
}
.sheet-text-capitalize {
text-transform: capitalize;
}
.sheet-text-uppercase {
text-transform: uppercase;
}
.sheet-text-center {
text-align: center;
}
.sheet-text-left {
text-align: left !important;
}
.sheet-text-right {
text-align: right;
}
.sheet-text-primary {
color: $primary;
}
@@ -0,0 +1,75 @@
div.sheet-background {
background-color: $transparentGray;
}
.sheet-border {
border: 0.15rem solid $gray;
}
.sheet-bottom-border {
border-bottom: 0.2rem solid $dark;
}
.sheet-description {
white-space: pre-line;
}
.sheet-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sheet-font-weight-bold {
font-weight: bold;
}
.sheet-inline-block {
display: inline-block;
}
.sheet-text-vertical {
transform: rotate(180deg);
writing-mode: vertical-lr;
}
@for $i from 1 through 6 {
div.sheet-#{$i}column {
grid-template-columns: repeat($i, 1fr);
}
}
div.sheet-2autocolumn {
grid-template-columns: auto 1fr;
}
div.sheet-2autocolumn-reverse {
grid-template-columns: 1fr auto;
}
div.sheet-4autocolumn {
grid-template-columns: auto 1fr auto 1fr;
}
div.sheet-3columnbutton {
grid-template-columns: auto 1fr 3rem;
}
@for $i from 1 through 5 {
.sheet-mb-#{$i} {
margin-bottom: (1% * $i);
}
.sheet-mt-#{$i} {
margin-top: (1% * $i);
}
.sheet-pb-#{$i} {
padding-bottom: (1% * $i);
}
.sheet-pt-#{$i} {
padding-top: (1% * $i);
}
}
@@ -0,0 +1,29 @@
label.sheet-styled-checkbox {
input, span {
grid-area: 1 / 1 / 1 / 1;
height: 15px;
width: 15px;
position: relative;
left: 20%;
}
span {
border: 2px solid $primary;
display: inline-block;
color: transparent;
text-align: center;
font-size: 1rem;
border-radius: 2rem;
line-height: 90%;
}
input {
opacity: 0;
z-index: 2;
&[type="checkbox"]:checked + span,
&[type="radio"]:checked + span {
background-color: $primary;
}
}
}
@@ -0,0 +1,79 @@
div.sheet-repeating-container {
button {
font-variant: none;
width: fit-content;
font-size: 1.5rem;
padding: 1% 2%;
&[type='roll'] {
width: 100%;
}
}
textarea {
margin-top: 2%;
}
.repcontrol {
margin-top: 5%;
}
.repcontrol_del {
font-family: "pictos";
position: relative;
}
.repitem {
margin-bottom: 2%;
}
div.sheet-descriptor {
grid-template-columns: 1fr repeat(2, 1.5rem);
align-items: center;
justify-items: center;
button[type='roll'] {
min-height: 2rem;
}
input[type='text'] {
@extend .sheet-bottom-border
}
div.sheet-collapse {
padding-left: 5%;
}
input[name='attr_collapse'] + span,
input[name='attr_settings'] + span {
font-size: 1.5rem;
}
@include collapseSettingsInputs(3)
div.sheet-collapse,
div.sheet-settings {
grid-column: 1 / 4;
}
div.sheet-settings {
grid-template-columns: 1fr;
background-color: rgba($gray, .2);
padding: 2%;
position: relative;
&::before {
position: absolute;
top: -1rem;
left: 50%;
content: '';
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 10px solid rgba($gray, .2);
}
}
}
}
@@ -0,0 +1,104 @@
.sheet-rolltemplate-rolls {
div.sheet-template-container {
border: 2px solid $dark;
border-radius: 0.3rem;
box-shadow: inset 0px 0px 3px 1px $primary;
text-align: center;
font-family: 'fantasy';
/* DICE ROLL STYLES
----------------------------- */
.inlinerollresult.fullfail,
.inlinerollresult.fullcrit,
.inlinerollresult.importantroll {
border: none;
}
.inlinerollresult.fullfail, .inlinerollresult.fullcrit {
color: $primary;
}
.inlinerollresult {
background-color: transparent;
border: none;
font-size: 2rem;
padding: unset;
}
div.sheet-template-header {
background-color: $white;
border-bottom: 2px solid $dark;
border-top: 2px solid $dark;
color: $dark-font;
font-size: 2rem;
font-variant: small-caps;
font-weight: bold;
margin-top: -2px;
padding: 3% 2%;
text-transform: capitalize;
-moz-box-shadow: inset 0 0 10px #000000;
-webkit-box-shadow: inset 0 0 10px #000000;
box-shadow: inset 0 0 10px #000000;
}
div.sheet-template-body {
background-color: $gray;
font-size: 1.75rem;
div.sheet-template-row {
color: $dark-font;
padding: 3% 2%;
&:nth-child(2n+0) {
background-color: $white;
border-top: 2px solid $dark;
}
span {
&.sheet-inlinerollresult {
color: $white;
font-size: 2rem;
font-weight: bold;
cursor: help;
padding: 0 3px 0 3px;
font-weight: bold;
}
&.sheet-percent,
&.sheet-template-desc {
font-size: 1.6rem;
}
}
}
div.sheet-template-damage {
background-color: #fff;
padding: 3% 2%;
text-transform: capitalize;
}
div.sheet-template-roll {
display: inline-grid;
grid-template-columns: 1fr 1fr;
width: 100%;
div.sheet-template-col {
padding: 5%;
&:nth-of-type(2) {
border-left: 2px solid $dark;
}
span {
display: block;
&:last-child {
margin-top: 5%;
}
}
}
}
}
}
}
@@ -0,0 +1,57 @@
/* SWITCH
============================= */
.sheet-switch {
position: relative;
display: inline-block;
width: 50px;
height: 24px;
/* Hide default HTML checkbox */
input {
opacity: 0;
width: 0;
height: 0;
}
}
/* The slider */
.sheet-slider {
-webkit-transition: .4s;
background-color: #ccc;
border-radius: 34px;
bottom: 0;
cursor: pointer;
left: 0;
position: absolute;
right: 0;
top: 0;
transition: .4s;
&:before {
-webkit-transition: .4s;
background-color: white;
border-radius: 50%;
bottom: 4px;
content: "";
height: 16px;
left: 4px;
position: absolute;
transition: .4s;
width: 16px;
}
input:checked + & {
background-color: black;
&:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
}
input:focus + & {
box-shadow: 0 0 1px black;
}
}
@@ -0,0 +1,21 @@
.sheet-footer {
display: block;
text-align: center;
span[name="attr_version"] {
&::after {
content: '.';
margin-right: 0.2rem;
}
}
span {
font-size: 1rem;
}
img {
margin-left: 2%;
height: 2.5rem;
width: 2.5rem;
}
}
@@ -0,0 +1,20 @@
.sheet-grid {
display: inline-grid;
grid-column-gap: 1%;
grid-row-gap: 0.5%;
}
%gridRowCol {
display: inline-grid;
overflow: hidden;
grid-auto-rows: min-content;
grid-column-gap: 1%;
}
%traitRowTop {
grid-template-rows: 2rem repeat(2, 1fr);
}
%headerRowBottom {
grid-template-rows: repeat(2, 1fr) 2rem;
}
@@ -0,0 +1,11 @@
// div.sheet- {
// margin-top: 2%;
// border-top: 2px solid $primary;
// border-bottom: 2px solid $primary;
// text-align: center;
// background: $light; /* Old browsers */
// background: -moz-linear-gradient(top, $light 0%, $secondary 50%, $light 100%); /* FF3.6-15 */
// background: -webkit-linear-gradient(top, $light 0%,$secondary 50%,$light 100%); /* Chrome10-25,Safari5.1-6 */
// background: linear-gradient(to bottom, $light 0%,$secondary 50%,$light 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$light', endColorstr='$light',GradientType=0 ); /* IE6-9 */
// }
@@ -0,0 +1,29 @@
/***** SETTINGS *****/
input[name='attr_page']:not([value='one']) ~ div.sheet-page-one,
input[name='attr_page']:not([value='two']) ~ div.sheet-page-two {
@extend %display-none;
}
div.sheet-collapse,
.sheet-settings {
opacity: 0;
height: 0;
transition: all .5s;
}
input[name*='collapse']:hover + span,
input[name*='settings']:hover + span {
color: $primary;
transform: scale(1.2);
}
input[name*='collapse']:checked ~ div.sheet-collapse,
input[name*='settings']:checked ~ div.sheet-settings {
opacity: 1;
height: 100%;
transition: all .5s;
}
input[name*='settings']:not(:checked) ~ div.sheet-settings {
display: none;
}
@@ -0,0 +1,165 @@
div.sheet-pc {
padding: 2% 1%;
grid-template-columns: 3fr 2fr 0.5fr;
grid-row-gap: 1%;
input[type='number'] {
width: 100%;
}
.sheet-colon:after {
content: ':'
}
div.sheet-box {
background-color: $gray;
-moz-box-shadow: inset 0 0 10px #00000024;
-webkit-box-shadow: inset 0 0 10px #00000024;
box-shadow: inset 0 0 10px #00000024;
padding: 2% 1%;
}
div.sheet-logo-row {
grid-column-gap: 5%;
align-items: end;
grid-template-columns: 1fr 20% 250px;
div.sheet-page-select {
grid-template-columns: auto 1fr 1fr;
div.sheet-button {
color: black;
border: 2px solid black;
text-align: center;
border-radius: 10px;
div.sheet-option,
input {
grid-area: 1 / 1 / 1 / 1;
min-height: 2rem;
}
input:checked ~ div.sheet-option {
color: white;
background-color: $primary;
border-radius: 0.8rem;
}
}
input[type='radio'] {
opacity: 0;
height: auto;
width: 100%;
z-index: 2;
}
}
div.sheet-logo {
justify-content: end;
img {
max-height: 100px;
}
}
}
div.sheet-character-info {
grid-row-gap: 5%;
h2 {
margin-right: 0.5rem;
}
div.sheet-name-row {
grid-template-columns: 2fr 1fr 2fr;
}
}
div.sheet-personality-row {
align-items: start;
grid-row-gap: 5%;
h2 {
font-size: 2rem;
}
h3 {
font-size: 1.5rem;
margin-right: 0.5rem;
}
textarea {
resize: none;
overflow: hidden;
}
div.sheet-personality,
div.sheet-origin {
textarea {
height: 40px;
}
}
div.sheet-mannerism {
textarea {
height: 86px;
}
}
}
@import 'sections/wastah-section';
div.sheet-traits {
grid-gap: unset;
@extend %middle-column;
h2 {
font-size: 1.2rem;
}
@import 'traits/trait';
@import 'traits/intellect';
@import 'traits/agility';
@import 'traits/persuasion';
@import 'traits/experience';
@import 'traits/awareness';
@import 'traits/presence';
@import 'traits/stamina';
@import 'traits/willpower';
@import 'traits/strength';
}
@import 'skills-row/skills-row';
div.sheet-character-history {
div.sheet-rowx {
grid-template-columns: 1fr repeat(2, 1.5rem);
}
@include collapseSettingsInputs(3)
div.sheet-collapse,
div.sheet-settings {
grid-column: 1 / 4;
margin: 1% 2%
}
textarea {
min-height: 50px;
height: 75px;
border: 1px dotted $primary;
}
div.sheet-box {
min-height: 20rem;
}
}
}
@import 'sections/movement-section';
@import 'sections/weapons-section';
@@ -0,0 +1,165 @@
div.sheet-movement-section {
display: inline-block;
h2 {
@extend .sheet-text-center;
@extend .sheet-text-uppercase;
}
input[type='number'],
input[type='text'] {
text-align: center;
}
span.sheet-subheader {
font-size: 1.3rem;
}
div.sheet-movement-column,
div.sheet-wealth-column {
@extend %partial-column;
}
div.sheet-speed-total,
div.sheet-defence-value-total {
position: relative;
height: 5rem;
&::before {
@include traitImage($trait-inner-circle2);
z-index: 0;
height: 5rem
}
label {
height: 100%;
width: 100%;
}
@extend %circle-input;
}
div.sheet-speed-total {
&::before {
transform: rotate(-125deg);
}
}
div.sheet-box {
min-height: 200px;
padding: 1% 5%;
&:nth-of-type(1n+2) {
margin-top: 10%;
}
}
div.sheet-armor-column {
display: inline-block;
background-image: $silhouette;
background-position: center;
background-repeat: no-repeat;
background-size: contain;
@extend %middle-column;
h2 {
position: relative;
}
textarea {
height: 50%;
resize: none;
overflow-x: hidden;
border: 2px solid #e4e5e6;
}
div.sheet-armor {
position: relative;
min-height: 8rem;
width: 100%;
div.sheet-armour-input {
position: relative;
justify-content: center;
align-items: center;
label, input {
min-height: 3.5rem;
}
input {
border-radius: 2rem;
width: 100%;
border: none;
}
}
div.sheet-content {
align-content: center;
}
div.sheet-body {
align-self: center;
}
}
div.sheet-head,
div.sheet-arms {
grid-template-columns: 7.5rem 40%;
justify-content: end;
div.sheet-armour-input {
&::before {
@include traitImage($trait-inner-circle2);
}
}
}
div.sheet-torso,
div.sheet-legs {
grid-template-columns: 40% 7.5rem;
div.sheet-armour-input {
grid-area: 1/ 2 / 1 / 3;
&::before {
@include traitImage($trait-inner-circle1);
}
}
div.sheet-body {
grid-area: 1 / 1 / 1 / 2;
}
}
div.sheet-head,
div.sheet-arms {
&::before {
transform: rotate(-90deg);
}
}
div.sheet-torso,
div.sheet-legs {
&::before {
transform: rotate(180deg);
}
}
div.sheet-damage-reduction {
div.sheet-header {
align-self: center;
}
div.sheet-content {
position: relative;
&::before {
@include traitImage($trait-inner-circle1);
}
@extend %circle-input;
}
}
}
}
@@ -0,0 +1,167 @@
div.sheet-wastah-section {
display: inline-block;
margin-bottom: -2%;
div.sheet-wastah,
div.sheet-enlightenment {
@extend %partial-column;
}
div.sheet-wastah,
div.sheet-enlightenment {
div.sheet-sanity-row,
div.sheet-health-row {
grid-row-gap: unset;
label {
display: grid;
justify-items: center;
}
input {
border: none;
height: 100%;
}
div.sheet-header {
align-items: center;
}
div.sheet-input {
position: relative;
input[type='number']:hover,
input[type='number']:focus {
border-radius: 2rem;
width: 100%;
}
}
}
div.sheet-sanity-row {
grid-template-rows: 5rem repeat(3, 3.8rem);
width: 115%;
}
div.sheet-health-row {
grid-template-rows: 5rem repeat(4, 3.8rem);
}
div.sheet-sanity,
div.sheet-health,
div.sheet-total {
grid-column-gap: 2%;
}
div.sheet-sanity,
div.sheet-health {
grid-template-columns: 5rem auto;
grid-template-rows: 5rem;
div.sheet-input {
input[type='number'] {
width: 3.5rem;
}
&::before {
@include traitImage($trait-circle3);
transform: rotate(180deg);
}
}
}
%smallinput {
grid-template-columns: 3.8rem auto;
position: relative;
div.sheet-input {
input[type='number'] {
width: 3rem;
}
&::before {
@include traitImage($trait-inner-circle2);
}
}
}
div.sheet-total {
left: 16%;
position: relative;
top: -30%;
@extend %smallinput;
div.sheet-input {
&::before {
transform: rotate(0deg);
}
}
}
div.sheet-anxious-hurt {
@extend %smallinput;
left: 5%;
top: -55%;
div.sheet-input {
&::before {
transform: rotate(50deg);
}
}
}
div.sheet-disturbed-injured {
@extend %smallinput;
left: 15%;
top: -75%;
div.sheet-input {
&::before {
transform: rotate(180deg);
}
}
}
div.sheet-dead {
@extend %smallinput;
left: 5%;
top: -90%;
div.sheet-input {
&::before {
@include traitImage($trait-inner-circle1);
transform: rotate(95deg);
}
}
}
div.sheet-madness {
margin-top: -10%;
input[type='text'] {
@extend .sheet-bottom-border;
}
}
}
div.sheet-box {
min-height: 300px;
}
div.sheet-descriptor {
grid-template-columns: 1.5rem 1fr repeat(2, 1.5rem);
grid-column-gap: 3%;
button[type='roll'] {
width: 95%;
}
@include collapseSettingsInputs(4)
div.sheet-collapse,
div.sheet-settings {
grid-column: 1 / 5;
}
}
}
@@ -0,0 +1,61 @@
div.sheet-weapons-section {
$weaponGrid: 2fr repeat(6, 5rem) 1fr 1fr repeat(2, 1.5rem);
div.sheet-headers {
grid-template-columns: $weaponGrid;
}
div.sheet-repeating-container {
div.sheet-descriptor {
grid-template-columns: $weaponGrid;
grid-gap: 0.5%;
button {
margin-bottom: 0px;
}
input[name='attr_collapse'],
input[name='attr_collapse'] + span {
grid-column: 11 / 12;
}
input[name='attr_settings'],
input[name='attr_settings'] + span {
grid-column: 12 / 13;
}
div.sheet-collapse,
div.sheet-settings {
grid-column: 1 / 13;
}
}
.repitem {
@extend .sheet-bottom-border;
}
div.sheet-column {
border-left: 1px solid black;
span {
padding: 0px 2px;
}
}
}
div.sheet-weapon {
grid-template-columns: 30% repeat(3, 1fr);
div.sheet-name {
grid-area: 1 / 1 / 1 / 5;
}
div.sheet-properties {
grid-area: 2 / 1 / 2 / 2;
}
div.sheet-special {
grid-area: 3 / 1 / 3 / 2;
}
}
}
@@ -0,0 +1,104 @@
div.sheet-skills-row {
display: inline-block;
input[type='number'] {
@extend .sheet-bottom-border;
}
select {
color: black;
}
div.sheet-benefits,
div.sheet-skills {
display: inline-block;
vertical-align: top;
width: 49.5%;
&:nth-of-type(1) {
margin-right: 1%;
}
}
input[name='attr_cost'],
input[name='attr_rank'] {
text-align: center;
}
div.sheet-collapse {
div.sheet-header {
grid-template-columns: 3fr 2fr 1fr;
}
}
div.sheet-powers {
div.sheet-header,
div.sheet-descriptor {
grid-template-columns: 1fr 25% repeat(2, 1.5rem);
}
div.sheet-collapse {
div.sheet-grid {
grid-template-columns: 1fr auto 5rem;
}
}
div.sheet-descriptor {
input[name='attr_collapse'],
input[name='attr_collapse'] + span {
grid-column: 3;
}
input[name='attr_settings'],
input[name='attr_settings'] + span {
grid-column: 4;
}
div.sheet-collapse,
div.sheet-settings {
grid-column: 1 / 5;
}
}
}
div.sheet-skills {
div.sheet-header,
div.sheet-descriptor {
grid-template-columns: 1.5fr 1fr 0.5fr repeat(2, 1.5rem);
}
div.sheet-collapse {
div.sheet-grid {
grid-template-columns: 1fr auto 5rem;
}
}
div.sheet-settings {
div.sheet-grid {
grid-template-columns: auto 1fr auto 5rem;
}
}
div.sheet-descriptor {
input[name='attr_collapse'],
input[name='attr_collapse'] + span {
grid-column: 4;
}
input[name='attr_settings'],
input[name='attr_settings'] + span {
grid-column: 5;
}
div.sheet-collapse,
div.sheet-settings {
grid-column: 1 / 6;
}
}
span[name='attr_specialization'] {
display: inline-block;
width: 100%;
}
}
}
@@ -0,0 +1,30 @@
div.sheet-agility {
grid-area: 1 / 3 / 1 / 4;
@extend %traitRowTop;
top: 28%;
div.sheet-header {
grid-row: 1;
text-align: left;
}
div.sheet-modifier {
grid-area: 1 / 3 / 3 / 5;
left: 15%;
top: 20%;
&::before {
@include traitImage($trait-inner-circle2);
transform: rotate(10deg);
}
}
div.sheet-score {
grid-area: 2 / 1 / 4 / 4;
&::before {
@include traitImage($trait-circle2);
transform: rotate(0deg);
}
}
}
@@ -0,0 +1,33 @@
div.sheet-awareness {
grid-area: 2 / 4 / 2 / 5;
@extend %traitRowTop;
right: 21%;
div.sheet-header {
grid-row: 1;
text-align: left;
h2 {
margin-top: 5%;
}
}
div.sheet-modifier {
grid-area: 1 / 3 / 4 / 5;
left: 30%;
&::before {
@include traitImage($trait-inner-circle1);
transform: rotate(-90deg);
}
}
div.sheet-score {
grid-area: 2 / 1 / 4 / 4;
&::before {
@include traitImage($trait-circle1);
transform: rotate(0deg);
}
}
}
@@ -0,0 +1,34 @@
div.sheet-experience {
grid-area: 2 / 2 / 4 / 4;
grid-template-rows: 66% 1fr;
height: 100%;
position: relative;
transform: scale(0.88);
&::before {
@include traitImage($trait-circle1);
transform: rotate(-90deg);
min-height: 180px;
}
div.sheet-header {
grid-area: 2 / 2 / 2 / 4;
}
div.sheet-input {
grid-area: 1 / 1 / 1 / 5;
padding: 20% 5% 10%;
label {
height: 100%;
width: 100%;
}
input[type='number'] {
border: none;
font-size: 4.5rem;
height: 100%;
border-radius: 2rem 2rem 0rem 0rem;
}
}
}
@@ -0,0 +1,30 @@
div.sheet-intellect {
grid-area: 1 / 2 / 1 / 3;
@extend %traitRowTop;
top: 28%;
right: 10%;
div.sheet-header {
grid-row: 1;
text-align: right;
}
div.sheet-modifier {
grid-area: 1 / 1 / 3 / 3;
right: 15%;
top: 24%;
&::before {
@include traitImage($trait-inner-circle1);
transform: rotate(180deg);
}
}
div.sheet-score {
grid-area: 2 / 2 / 4 / 5;
&::before {
@include traitImage($trait-circle3);
}
}
}
@@ -0,0 +1,33 @@
div.sheet-persuasion {
grid-area: 2 / 1 / 2 / 2;
@extend %traitRowTop;
left: 20%;
div.sheet-header {
grid-row: 1;
text-align: right;
h2 {
margin-top: 5%;
}
}
div.sheet-modifier {
grid-area: 1 / 1 / 4 / 3;
right: 35%;
&::before {
@include traitImage($trait-inner-circle2);
transform: rotate(0deg);
}
}
div.sheet-score {
grid-area: 2 / 2 / 4 / 5;
&::before {
@include traitImage($trait-circle4);
transform: rotate(100deg);
}
}
}
@@ -0,0 +1,29 @@
div.sheet-presence {
grid-area: 3 / 1 / 3 / 2;
@extend %headerRowBottom;
left: 22%;
div.sheet-header {
grid-row: 3;
text-align: center;
}
div.sheet-modifier {
grid-area: 1 / 1 / 3 / 3;
right: 30%;
&::before {
@include traitImage($trait-inner-circle1);
transform: rotate(0deg);
}
}
div.sheet-score {
grid-area: 1 / 2 / 3 / 5;
&::before {
@include traitImage($trait-circle1);
transform: rotate(-100deg);
}
}
}
@@ -0,0 +1,29 @@
div.sheet-stamina {
grid-area: 3 / 4 / 3 / 5;
@extend %headerRowBottom;
right: 22%;
div.sheet-header {
grid-row: 3;
text-align: center;
}
div.sheet-modifier {
grid-area: 1 / 3 / 3 / 5;
left: 30%;
&::before {
@include traitImage($trait-inner-circle2);
transform: rotate(0deg);
}
}
div.sheet-score {
grid-area: 1 / 1 / 3 / 4;
&::before {
@include traitImage($trait-circle4);
transform: rotate(-10deg);
}
}
}
@@ -0,0 +1,30 @@
div.sheet-strength {
grid-area: 4 / 3 / 4 / 4;
@extend %headerRowBottom;
bottom: 30%;
left: 10%;
div.sheet-header {
grid-row: 3;
text-align: center;
}
div.sheet-modifier {
grid-area: 2 / 3 / 3 / 5;
left: 20%;
&::before {
@include traitImage($trait-inner-circle1);
transform: rotate(180deg);
}
}
div.sheet-score {
grid-area: 1 / 1 / 3 / 4;
&::before {
@include traitImage($trait-circle3);
transform: rotate(190deg);
}
}
}
@@ -0,0 +1,61 @@
div.sheet-trait {
min-height: 110px;
position: relative;
width: 100%;
button[type='roll'] {
font-size: 1.3rem;
text-align: left;
text-transform: uppercase;
}
label {
height: 100%;
position: relative;
width: 100%;
}
input[type='number'] {
border: none;
border-radius: 1rem;
&:hover {
@extend .sheet-bottom-border;
}
}
div.sheet-header {
grid-column: 1 / 5;
}
div.sheet-modifier,
div.sheet-score {
display: grid;
position: relative;
align-content: center;
}
div.sheet-modifier {
input[type='number'] {
font-size: 2.5rem;
min-height: 3rem;
}
&:before {
min-height: 50px;
min-width: 50px;
}
}
div.sheet-score {
input[type='number'] {
font-size: 3.5rem;
min-height: 4rem;
}
&:before {
min-height: 80px;
min-width: 80px;
}
}
}
@@ -0,0 +1,29 @@
div.sheet-willpower {
grid-area: 4 / 2 / 4 / 3;
@extend %headerRowBottom;
bottom: 30%;
div.sheet-header {
grid-row: 3;
text-align: center;
}
div.sheet-modifier {
grid-area: 2 / 1 / 3 / 3;
right: 20%;
&::before {
@include traitImage($trait-inner-circle2);
transform: rotate(0deg);
}
}
div.sheet-score {
grid-area: 1 / 2 / 3 / 5;
&::before {
@include traitImage($trait-circle4);
transform: rotate(40deg);
}
}
}
@@ -0,0 +1,112 @@
{
"black void" :"black void"
,"name" :"name"
,"player name" :"player name"
,"notes":"notes"
,"personality":"personality"
,"desire and motivation":"desire and motivation"
,"dislikes secrets regrets": "dislikes, secrets and regrets"
,"philosophy principles":"philosophy & principles"
,"quirk and habits":"quirk and habits"
,"sayings":"sayings"
,"species":"species"
,"homeworld":"homeworld"
,"gender":"gender"
,"age":"age"
,"skin":"skin"
,"eyes":"eyes"
,"hair":"hair"
,"build":"build"
,"appearence":"appearence"
,"origin":"origin"
,"mannerism":"mannerism"
,"ancestry and relations":"ancestry and relations"
,"caste":"caste"
,"faction and allegiance":"faction and allegiance"
,"occupation":"occupation"
,"patron":"patron"
,"wastah":"wastah"
,"enlightenment":"enlightenment"
,"intellect":"intellect"
,"persuasion":"persuasion"
,"agility":"agility"
,"experience points":"experience points"
,"awareness":"awareness"
,"presence":"presence"
,"stamina":"stamina"
,"willpower":"willpower"
,"strength":"strength"
,"sanity":"sanity"
,"total sanity":"total sanity"
,"anxious (+1 to madness)":"anxious (+1 to madness)"
,"disturbed (+3 to madness)":"disturbed (+3 to madness)"
,"madness":"madness"
,"health":"health"
,"total health":"total health"
,"hurt":"hurt"
,"hurt (-1 penality)":"hurt (-1 penality)"
,"injured":"injured"
,"injured (-3 penality)":"injured (-3 penality)"
,"dead":"dead"
,"benefit":"benefit"
,"cost":"cost"
,"background":"background"
,"talent":"talent"
,"attribute":"attribute"
,"powers":"powers"
,"rank":"rank"
,"description":"description"
,"specialization":"specialization"
,"combat skills":"combat skills"
,"skills":"skills"
,"other":"other"
,"type":"type"
,"Background / Attributes / Talents":"Background / Attributes / Talents"
,"trait":"trait"
,"modifier":"modifier"
,"friend allies": "friend & allies"
,"known enemies": "known enemies"
,"notable people": "notable people"
,"notable experiences":"notable experiences"
,"character history":"character history"
,"movement":"movement"
,"(km/hour)":"(km/hour)"
,"walking speed":"walking speed"
,"running speed (x2)":"running speed (x2)"
,"sprinting speed (x4)":"sprinting speed (x4)"
,"combat speed": "combat speed"
,"(meters/round)": "(meters/round)"
,"defence value":"defence value"
,"agility modifier":"agility modifier"
,"skill modifier": "skill modifier"
,"shield modifier":"shield modifier"
,"other modifiers":"other modifiers"
,"armour, tattoo's & graftings":"armour, tattoo's & graftings"
,"wealth":"wealth"
,"property / assets":"property / assets"
,"size":"size"
,"range":"range"
,"attack modifier":"attack modifier"
,"speed":"speed"
,"damage":"damage"
,"properties":"properties"
,"special":"special"
,"equipment":"equipment"
,"weapons":"Weapons"
,"bulk, properties, & other":"bulk, properties, & other"
,"damage reduction":"damage reduction"
,"(accumulated total)":"(accumulated total)"
,"head":"head"
,"torso":"torso"
,"arms":"arms"
,"legs":"legs"
,"page":"page"
,"bulk":"bulk"
,"legs description":"legs description"
,"torso description":"torso description"
,"arms description":"arms description"
,"head description":"head description"
,"running speed":"running speed"
,"sprinting speed":"sprint speed"
,"property assets":"property assets"
}
+15
View File
@@ -0,0 +1,15 @@
# Roll20-Kamigakari
This is a character sheet for Kamigakari: God Hunters.
Use the check boxes to keep track of spent spirit dice, then hit the spirit pool button to roll those dice.
The track button next 'Initiative' to adds that character to the initiative tracker. You must have the token selected.
The Mononoke tab is for both contractors and Mononoke. For macro use all stats start with mononoke_ but are otherwise as they appear on the ship for example:
mononoke_acc
mononoke_Initiative
Thanks to Jakob for the Text Expanding Area CSS and plexsoup for the working tabs

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