Files
roll20-character-sheets/OnePiece_d20/sheet.html
T
2019-12-16 10:34:14 -06:00

596 lines
23 KiB
HTML

<div class="main">
<div class="header flex-around section">
<h1>One Piece d20</h1>
<img class="logo" src="https://vignette.wikia.nocookie.net/onepiece/images/8/87/Straw_Hat_Pirates'_Jolly_Roger.png">
</div>
<div class="common section">
<div class="one-third bumper">
<label>Name: </label><input name="attr_character_name" type="text" />
</div>
<div class="one-third bumper">
<label>Class: </label><input name="attr_class" type="text" />
</div>
<div class="one-third bumper">
<label>Alignment: </label><input name="attr_alignment" type="text" />
</div>
<div class="one-third bumper">
<label>Career: </label><input name="attr_career" type="text" />
</div>
<div class="one-third bumper">
<label>Race: </label><input name="attr_race" type="text" />
</div>
<div class="one-third bumper">
<label>Devil Fruit: </label><input name="attr_devil_fruit" type="text" />
</div>
<div class="one-third bumper">
<label>Size: </label>
<select name="attr_size_mod">
<option value="1">Small</option>
<option value="0" selected>Medium</option>
<option value="-1">Large</option>
<option value="-2">Huge</option>
<option value="-3">Gargantuan</option>
<option value="-4">Colossal</option>
</select>
</div>
<div class="one-third bumper">
<label>Level: </label><input type="number" name="attr_level" value="1" />
</div>
<div class="one-third bumper">
<label>Experience: </label><input type="number" name="attr_xp" value="0" class="bigNumber" />
</div>
<div class="one-third bumper">
<label>Disadvantage 1: </label><input name="attr_disad_1" type="text" />
</div>
<div class="one-third bumper">
<label>Disadvantage 2: </label><input name="attr_disad_2" type="text" />
</div>
<div class="one-third bumper">
<label>Disadvantage 3: </label><input name="attr_disad_3" type="text" />
</div>
<div class="bumper fullWidth">
<label>Notes:</label><textarea name="attr_notes"></textarea>
</div>
</div>
<div class="attr section flex-col">
<h2>Attributes</h2>
<div class="flex-wrap flex-around">
<div class="bumper half">
<label>Strength</label>
<input type="number" name="attr_str" value="10" />
<span class="modBox" name="attr_str_mod"></span>
</div>
<div class="bumper half">
<label>Dexterity</label>
<input type="number" name="attr_dex" value="10" />
<span class="modBox" name="attr_dex_mod"></span>
</div>
<div class="bumper half">
<label>Constitution</label>
<input type="number" name="attr_con" value="10" />
<span class="modBox" name="attr_con_mod"></span>
</div>
<div class="bumper half">
<label>Intelligence</label>
<input type="number" name="attr_int" value="10" />
<span class="modBox" name="attr_int_mod"></span>
</div>
<div class="bumper half">
<label>Wisdom</label>
<input type="number" name="attr_wis" value="10" />
<span class="modBox" name="attr_wis_mod"></span>
</div>
<div class="bumper half">
<label>Charisma</label>
<input type="number" name="attr_cha" value="10" />
<span class="modBox" name="attr_cha_mod"></span>
</div>
</div>
</div>
<div class="stat section flex-col">
<h2>Stats</h2>
<div class="flex-between flex-wrap">
<div class="half bumper">
<label>HP: </label><input type="number" name="attr_current_hp" /> of <input type="number" name="attr_max_hp" />
</div>
<div class="half bumper">
<label>Non-Lethal HP: </label><input type="number" name="attr_current_nonlethal_hp" /> of <input type="number"
name="attr_max_nonlethal_hp" />
</div>
<div class="half bumper">
<label>Damage Reduction: </label><input type="number" name="attr_damage_reduction" />
</div>
<div class="half bumper">
<label>Land Speed: </label><input type="number" name="attr_land_speed" />
</div>
<div class="half bumper">
<label>Water Speed: </label><input type="number" name="attr_water_speed" />
</div>
<div class="half bumper">
<label>Current Stance: </label><input type="text" name="attr_current_stance" />
</div>
</div>
</div>
<div class="resistance section flex-col">
<h2>Resistances</h2>
<div class="flex-wrap flex-around">
<div class="bumper half">
<label>Cold: </label><input type="number" name="attr_cold_resist" value="0" />
</div>
<div class="bumper half">
<label>Corrosive: </label><input type="number" name="attr_corrosive_resist" value="0" />
</div>
<div class="bumper half">
<label>Electric: </label><input type="number" name="attr_electric_resist" value="0" />
</div>
<div class="bumper half">
<label>Energy: </label><input type="number" name="attr_energy_resist" value="0" />
</div>
<div class="bumper half">
<label>Heat: </label><input type="number" name="attr_heat_resist" value="0" />
</div>
<div class="bumper half">
<label>Sonic: </label><input type="number" name="attr_sonic_resist" value="0" />
</div>
</div>
</div>
<div class="items section">
<h2>Items</h2>
<label>Beli</label> <input type="number" name="attr_beli" class="bigNumber" />
<fieldset class="repeating_items">
<div class="block">
<div class="one-third">
<label>Name</label><input type="text" name="attr_item_name" />
</div>
<div class="one-third">
<label>Quantity</label><input type="number" name="attr_item_quantity" value="0" />
</div>
<div class="one-third">
<label>Weight</label><input type="number" name="attr_item_weight" value="0" />
</div>
</div>
</fieldset>
</div>
<div class="armor section">
<h2>Armor</h2>
<div class="flex-wrap">
<div class="flex-col flex-center half">
<h3>Head Armor</h3>
<h3>Defense</h3> <input type="number" name="attr_head_armor_def" />
<h3>Bonuses</h3> <input type="text" name="attr_head_armor_bonuses" />
<h3>Type</h3> <input type="text" name="attr_head_armor_type" />
</div>
<div class="flex-col flex-center half">
<h3>Hand Armor</h3>
<h3>Defense</h3> <input type="number" name="attr_hand_armor_def" />
<h3>Bonuses</h3> <input type="text" name="attr_hand_armor_bonuses" />
<h3>Type</h3> <input type="text" name="attr_hand_armor_type" />
</div>
<div class="flex-col flex-center half">
<h3>Body Armor</h3>
<h3>Defense</h3> <input type="number" name="attr_body_armor_def" />
<h3>Bonuses</h3> <input type="text" name="attr_body_armor_bonuses" />
<h3>Type</h3> <input type="text" name="attr_body_armor_type" />
</div>
<div class="flex-col flex-center half">
<h3>Foot Armor</h3>
<h3>Defense</h3> <input type="number" name="attr_foot_armor_def" />
<h3>Bonuses</h3> <input type="text" name="attr_foot_armor_bonuses" />
<h3>Type</h3> <input type="text" name="attr_foot_armor_type" />
</div>
<div class="flex-col flex-center half">
<h3>Leg Armor</h3>
<h3>Defense</h3> <input type="number" name="attr_leg_armor_def" />
<h3>Bonuses</h3> <input type="text" name="attr_leg_armor_bonuses" />
<h3>Type</h3> <input type="text" name="attr_leg_armor_type" />
</div>
<div class="flex-col flex-center half">
<h3>Other Armor</h3>
<h3>Defense</h3> <input type="number" name="attr_other_armor_def" />
<h3>Bonuses</h3> <input type="text" name="attr_other_armor_bonuses" />
<h3>Type</h3> <input type="text" name="attr_other_armor_type" />
</div>
</div>
</div>
<div class="skill section">
<h2>Primary Skills</h2>
<div class="flex-wrap">
<div class="block one-third">
<h3 class="fullWidth">
Primary Attack
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_primary_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_primary_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_primary_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_primary_bonuses" type="number" value="0" />
</div>
<input type="hidden" name="attr_primary_total"
value="@{primary_base_att}+@{primary_rank}+@{primary_bonuses} + @{size_mod}" />
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Primary Attack}} {{result=[[d20+@{primary_total}]]}}" />
</div>
<div class="block one-third">
<h3 class="fullWidth">
Unarmed Strike
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_unarmed_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_unarmed_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_unarmed_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_unarmed_bonuses" type="number" value="0" />
</div>
<input type="hidden" name="attr_unarmed_total"
value="@{unarmed_base_att}+@{unarmed_rank}+@{unarmed_bonuses} + @{size_mod}" />
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Unarmed Strike}} {{result=[[d20+@{unarmed_total}]]}}" />
</div>
<div class="block one-third">
<h3 class="fullWidth">
Ranged Shot
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_ranged_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_ranged_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_ranged_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_ranged_bonuses" type="number" value="0" />
</div>
<input type="hidden" name="attr_ranged_total"
value="@{ranged_base_att}+@{ranged_rank}+@{ranged_bonuses} + @{size_mod}" />
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Ranged Shot}} {{result=[[d20+@{ranged_total}]]}}" />
</div>
<div class="block one-third">
<h3 class="fullWidth">
Defense
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_defense_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_defense_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_defense_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_defense_bonuses" type="number" value="0" />
</div>
<input type="hidden" name="attr_defense_total"
value="@{defense_base_att} + @{defense_rank} + @{defense_bonuses} + @{size_mod}" />
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Defense}} {{result=[[d20+@{defense_total}]]}}" />
</div>
<div class="block one-third">
<h3 class="fullWidth">
Initiative
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_init_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_init_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_init_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_init_bonuses" type="number" value="0" />
</div>
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Initiative}} {{result=[[d20+@{init_base_att}+@{init_rank}+@{init_bonuses}]]}}" />
</div>
<div class="block one-third">
<h3 class="fullWidth">
Fortitude Save
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_fort_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_fort_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_fort_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_fort_bonuses" type="number" value="0" />
</div>
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Fortitude Save}} {{result=[[d20+@{fort_base_att}+@{fort_rank}+@{fort_bonuses}]]}}" />
</div>
<div class="block one-third">
<h3 class="fullWidth">
Reflex Save
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_ref_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_ref_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_ref_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_ref_bonuses" type="number" value="0" />
</div>
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Reflex Save}} {{result=[[d20+@{ref_base_att}+@{ref_rank}+@{ref_bonuses}]]}}" />
</div>
<div class="block one-third">
<h3 class="fullWidth">
Will Save
</h3>
<div class="one-third">
Favored: <input type="checkbox" name="attr_will_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_will_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_will_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_will_bonuses" type="number" value="0" />
</div>
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=Will Save}} {{result=[[d20+@{will_base_att}+@{will_rank}+@{will_bonuses}]]}}" />
</div>
</div>
<h2>Secondary Skills</h2>
<fieldset class="repeating_skills flex-wrap">
<div class="block">
<div>
Name:<input name="attr_skill_name" type="text" />
</div>
<div class="one-third">
Favored: <input type="checkbox" name="attr_skill_favored" />
</div>
<div class="one-third">
Base Att.:
<select name="attr_skill_base_att">
<option value="@{str_mod}">STR</option>
<option value="@{dex_mod}">DEX</option>
<option value="@{con_mod}">CON</option>
<option value="@{int_mod}">INT</option>
<option value="@{wis_mod}">WIS</option>
<option value="@{cha_mod}">CHA</option>
</select>
</div>
<div class="one-third">
Rank: <input name="attr_skill_rank" type="number" value="0" />
</div>
<div class="half">
Bonuses: <input name="attr_skill_bonuses" type="number" value="0" />
</div>
<div class="half">
<button type="roll" name="roll_skill"
value="&{template:skill} {{name=@{character_name}}} {{skillName=@{skill_name}}} {{result=[[d20+@{skill_base_att}+@{skill_rank}+@{skill_bonuses}]]}}" />
</div>
</div>
</fieldset>
</div>
<div class="attack section">
<h2>Attacks</h2>
<fieldset class="repeating_attacks">
<div class="block">
<div class="half">
Name:<input name="attr_attack_name" type="text" />
</div>
<div class="half">
Damage:<input name="attr_attack_damage" type="text" placeholder="3d6+2" />
</div>
<div class="one-third">
Crit Damage: <input name="attr_attack_crit_damage" type="text" placeholder="6d6+4" />
</div>
<div class="half">
Type: <input name="attr_attack_type" type="text" />
</div>
<div>
Skill Used:
<select name="attr_attack_skill">
<option value="@{primary_total}">Primary Attack</option>
<option value="@{ranged_total}">Ranged Attack</option>
<option value="@{unarmed_total}">Unarmed Attack</option>
</select>
</div>
<div class="one-half">
Range: <input name="attr_attack_range" type="number" value="0" />
</div>
<div class="one-half">
Minimum to Crit: <input name="attr_attack_crit" type="number" value="20" />
</div>
<div class="half">
<button type="roll" name="roll_attack"
value="&{template:attack} {{character=@{character_name}}} {{attackName=@{attack_name}}} {{hitRoll=[[d20cs>@{attack_crit} + @{attack_skill}]]}} {{critConfirm=[[d20 + @{attack_skill}]]}} {{damage=[[@{attack_damage}]]}} {{critDamage=[[@{attack_crit_damage}]]}} {{type=@{attack_type}}}" />
</div>
</div>
</fieldset>
</div>
<div class="feats section flex-col">
<h2>Feats</h2>
<fieldset class="repeating_feat flex-wrap">
<div class="block">
Name:<input name="attr_feat_name" type="text" class="max-width-input" />
Description:<textarea name="attr_feat_desc"></textarea>
</div>
</fieldset>
</div>
</div>
<script type="text/worker">
on("change:str", function(eventInfo) {
//Do something here
// eventInfo.previousValue is the original value of the attribute that triggered this event, before being changed.
// eventInfo.newValue is the current value of the attribute that triggered this event, having been changed.
const newMod = Math.floor((eventInfo.newValue - 10) / 2)
console.log('Setting str_mod to ', newMod)
setAttrs({str_mod: newMod})
});
on("change:dex", function(eventInfo) {
//Do something here
// eventInfo.previousValue is the original value of the attribute that triggered this event, before being changed.
// eventInfo.newValue is the current value of the attribute that triggered this event, having been changed.
const newMod = Math.floor((eventInfo.newValue - 10) / 2)
setAttrs({dex_mod: newMod})
});
on("change:con", function(eventInfo) {
const newMod = Math.floor((eventInfo.newValue - 10) / 2)
setAttrs({con_mod: newMod})
});
on("change:int", function(eventInfo) {
const newMod = Math.floor((eventInfo.newValue - 10) / 2)
setAttrs({int_mod: newMod})
});
on("change:wis", function(eventInfo) {
const newMod = Math.floor((eventInfo.newValue - 10) / 2)
console.log(newMod)
console.log(5 + newMod)
setAttrs({wis_mod: newMod})
});
on("change:cha", function(eventInfo) {
const newMod = Math.floor((eventInfo.newValue - 10) / 2)
setAttrs({cha_mod: newMod})
});
on('sheet:opened',function(){
function getMod(val){
return Math.floor((val - 10) / 2)
}
getAttrs(['str','dex','con','int','wis','cha'], function(values){
setAttrs({
str_mod: getMod(values.str),
dex_mod: getMod(values.dex),
con_mod: getMod(values.con),
int_mod: getMod(values.int),
wis_mod: getMod(values.wis),
cha_mod: getMod(values.cha)
})
})
});
</script>
<rolltemplate class="sheet-rolltemplate-attack">
<div class="attack-roll">
<h3>{{character}} attacks! </h3>
<span>
<h3>{{attackName}}</h3>
</span>
<span>
<h3>To Hit: </h3> {{hitRoll}}
</span>
<span>
<h3>Type of damage: </h3> {{type}}
</span>
<span>
<h3>Damage: </h3> {{damage}}
</span>
{{#rollWasCrit() hitRoll}}
<span>
<h3>Critical Roll: </h3>{{critConfirm}}
</span>
<span>
<h3>Damage If Crit: </h3> {{critDamage}}
</span>
{{/rollWasCrit() hitRoll}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-skill">
<div class="skill-roll">
<h3>{{name}} rolls {{skillName}}</h3>
{{result}}
</div>
</rolltemplate>