Files
2024-06-03 13:15:14 -04:00

639 lines
28 KiB
HTML

<html>
<div class = "charinfo">
<div class = "logo">
<img src = "https://raw.githubusercontent.com/missing-q/charsheets/master/Jojo's%20Bizarre%20Tabletop/assets/logo.png">
</div>
<div class = "user section">
<!--Character name-->
<label>
Character Name
<input name = "attr_character_name">
</label>
<label>
Character Points
<input name = "attr_cp" type = "number" value = "0">
</label>
<div class = "divider"></div>
<label>
Character Types
<fieldset class = "repeating_chartypes">
<select name = "attr_chartype">
<option value = ""></option>
<option value = "Robotic">Robotic</option>
<option value = "Hype Man">Hype Man</option>
<option value = "Hamon">Hamon</option>
<option value = "Vampire">Vampire</option>
<option value = "Spin">Spin</option>
<option value = "No Stand">No Stand</option>
<option value = "Custom">Custom</option>
</select>
<div class = "ranks">
Rank 1 <input type = "radio" value = "1" name = "attr_typerank" checked = "true">
Rank 2 <input type = "radio" value = "2" name = "attr_typerank">
Rank 3 <input type = "radio" value = "3" name = "attr_typerank">
</div>
</fieldset>
</label>
<div class = "divider"></div>
<!-- User Stats -->
<div class = "grid">
<div class = "statlabel item"><button type='roll' value='/roll 1d6 + @{brains}'>Brains</button></div>
<div class = "statlabel item"><button type='roll' value='/roll 1d6 + @{brawns}'>Brawns</button></div>
<div class = "statlabel item"><button type='roll' value='/roll 1d6 + @{bravery}'>Bravery</button></div>
<div class = "item">
<input name = "attr_brains" type = "number" value = "0">
</div>
<div class = "item">
<input name = "attr_brawns" type = "number" value = "0">
</div>
<div class = "item">
<input name = "attr_bravery" type = "number" value = "0">
</div>
</div>
<div class = "grid">
<div class = "statlabel item">Real Health</div>
<div class = "statlabel item">Resolve Health</div>
<div class = "statlabel item">Bizarre Points</div>
<div class = "item">
<input name = "attr_health" type = "number" value = "0">
</div>
<div class = "item">
<input name = "attr_resolve" type = "number" value = "0">
</div>
<div class = "item">
<input name = "attr_bp" type = "number" value = "0">
</div>
</div>
<!-- -->
</div>
<input name = "attr_hasstand" type = "checkbox" class = "has_stand hidden" checked = "checked" value = "1">
<!--Stand wrapper - hides when the "No Stand" option is selected -->
<div class = "stand">
<!-- Stand Stats and info-->
<div class = "standinfo section">
<label>
Stand Name <input name = "attr_stand_name" type = "text">
</label>
<!--Add tooltips of each stand type description using the Title parameter-->
<label>
Stand Types
<fieldset class = "repeating_standtypes">
<select name = "attr_standtype">
<option value = ""></option>
<option disabled>DISTANCE</option>
<option value = "Close Distance Power">Close Distance Power</option>
<option value = "Long Distance Manipulation">Long Distance Manipulation</option>
<option value = "Far Distance Autopilot">Far Distance Autopilot</option>
<option disabled>FORM</option>
<option value = "Substance Assimilation">Substance Assimilation</option>
<option value = "Integrated">Integrated</option>
<option value = "Wearable">Wearable</option>
<option value = "Colony">Colony</option>
<option disabled>MISC.</option>
<option value = "ACT Stand">ACT Stand</option>
<option value = "Universal Range">Universal Range</option>
</select>
</fieldset>
</label>
<div class = "divider"></div>
<!--Stats-->
<div class = "grid grid4">
<div class = "statlabel item">Stat</div>
<div class = "statlabel item">Rank</div>
<div class = "statlabel item">Dice</div>
<div class = "statlabel item">Modifier</div>
<!--Power-->
<div class = "item"><button type='roll' value='/roll @{power_dice}'>Power</button></div>
<div class = "item">
<select name = "attr_power_val">
<option>A</option>
<option>B</option>
<option selected>C</option>
<option>D</option>
<option>E</option>
</select>
</div>
<div class = "item"><span name = "attr_power_dice" value = "2d6">2d6</span></div>
<div class = "item"><span name = "attr_power_mod" value = "+1">+1</span></div>
<!--Speed-->
<div class = "item"><button type='roll' value='/roll @{speed_dice}'>Speed</button></div>
<div class = "item">
<select name = "attr_speed_val">
<option>A</option>
<option>B</option>
<option selected>C</option>
<option>D</option>
<option>E</option>
</select>
</div>
<div class = "item"><span name = "attr_speed_dice" value = "2d6">2d6</span></div>
<div class = "item"><span name = "attr_speed_mod" value = "+1">+1</span></div>
<!--Range-->
<div class = "item"><button type='roll' value='/roll @{range_dice}'>Range</button></div>
<div class = "item">
<select name = "attr_range_val">
<option>A</option>
<option>B</option>
<option selected>C</option>
<option>D</option>
<option>E</option>
</select>
</div>
<div class = "item"><span name = "attr_range_dice" value = "2d6">2d6</span></div>
<div class = "item"><span name = "attr_range_mod" value = "+1">+1</span></div>
<!--Durability-->
<div class = "item"><button type='roll' value='/roll @{durability_dice}'>Durability</button></div>
<div class = "item">
<select name = "attr_durability_val">
<option>A</option>
<option>B</option>
<option selected>C</option>
<option>D</option>
<option>E</option>
</select>
</div>
<div class = "item"><span name = "attr_durability_dice" value = "2d6">2d6</span></div>
<div class = "item"><span name = "attr_durability_mod" value = "+1">+1</span></div>
<!--Precision-->
<div class = "item"><button type='roll' value='/roll @{precision_dice}'>Precision</button></div>
<div class = "item">
<select name = "attr_precision_val">
<option>A</option>
<option>B</option>
<option selected>C</option>
<option>D</option>
<option>E</option>
</select>
</div>
<div class = "item"><span name = "attr_precision_dice" value = "2d6">2d6</span></div>
<div class = "item"><span name = "attr_precision_mod" value = "+1">+1</span></div>
<!--Learning-->
<div class = "item"><button type='roll' value='/roll @{learning_dice}'>Learning</button></div>
<div class = "item">
<select name = "attr_learning_val">
<option>A</option>
<option>B</option>
<option selected>C</option>
<option>D</option>
<option>E</option>
</select>
</div>
<div class = "item"><span name = "attr_learning_dice" value = "2d6">2d6</span></div>
<div class = "item"><span name = "attr_learning_mod" value = "+1">+1</span></div>
</div>
<!--Critical weaknesses-->
<div class = "grid grid1"><div class = "item statlabel">Critical Weaknesses</div></div>
<div class = "grid grid2">
<!--Power-->
<input name = "attr_power_cw" class = "hidden" type = "checkbox" checked = "" value = "1">
<div class = "item power_cw cw">Power</div>
<div class = "item power_cw cw"><textarea name = "attr_power_cw_input"></textarea></div>
<!--Speed-->
<input name = "attr_speed_cw" class = "hidden" type = "checkbox" checked = "" value = "1">
<div class = "item speed_cw cw">Speed</div>
<div class = "item speed_cw cw"><textarea name = "attr_speed_cw_input"></textarea></div>
<!--Range-->
<input name = "attr_range_cw" class = "hidden" type = "checkbox" checked = "" value = "1">
<div class = "item range_cw cw">Range</div>
<div class = "item range_cw cw"><textarea name = "attr_range_cw_input"></textarea></div>
<!--Durability-->
<input name = "attr_durability_cw" class = "hidden" type = "checkbox" checked = "" value = "1">
<div class = "item durability_cw cw">Durability</div>
<div class = "item durability_cw cw"><textarea name = "attr_durability_cw_input"></textarea></div>
<!--Precision-->
<input name = "attr_precision_cw" class = "hidden" type = "checkbox" checked = "" value = "1">
<div class = "item precision_cw cw">Precision</div>
<div class = "item precision_cw cw"><textarea name = "attr_precision_cw_input"></textarea></div>
<!--Learning-->
<input name = "attr_learning_cw" class = "hidden" type = "checkbox" checked = "" value = "1">
<div class = "item learning_cw cw">Learning</div>
<div class = "item learning_cw cw"><textarea name = "attr_learning_cw_input"></textarea></div>
</div>
<div class = "divider"></div>
<!--Stand Abilities-->
<div class = "grid grid1"><div class = "item statlabel">Abilities</div></div>
<div class = "grid grid1"><div class = "item bold">Stand Description</div></div>
<div class = "grid grid1 inventory">
<div class = "item"><textarea name = "attr_stand_desc"></textarea></div>
</div>
<div class = "divider-special"></div>
<div class = "grid grid5">
<div class = "ab-name bold item">Name</div>
<div class = "ab-roll bold item ">Roll</div>
<div class = "ab-range bold item">Range</div>
<div class = "ab-effect bold item">Effect</div>
<div class = "ab-condition bold item">Condition</div>
</div>
<fieldset class = "repeating_abilities">
<div class = "grid grid5">
<div class = "ab-name item">
<button type='roll' value='/roll @{abilityroll}'><span style = "font-family: dicefontd6">F</span></button>
<input name = "attr_abilityname" type = "text"></div>
<div class = "ab-roll item">
<select name = "attr_abilityroll">
<option>1d6</option>
<option>2d6k1</option>
<option selected>2d6</option>
<option>3d6k2</option>
<option>3d6</option>
</select>
</div>
<div class = "ab-range item"><input name = "attr_abilityrange" type = "text"></div>
<div class = "ab-effect item"><textarea name = "attr_abilityeffect"></textarea></div>
<div class = "ab-condition item"><textarea name = "attr_abilitycondition"></textarea></div>
</div>
</fieldset>
</div>
</div>
<!---->
<div class = "userinfo section">
<!--Inventory-->
<div class = "grid grid1"><div class = "item statlabel">Inventory</div></div>
<div class = "grid grid1 inventory">
<div class = "item"><textarea name = "attr_item"></textarea></div>
</div>
<!--Secret Actions-->
<div class = "grid grid1"><div class = "item statlabel">Secret Actions</div></div>
<div class = "divider-special"></div>
<div class = "grid grid3">
<div class = "item bold">Name</div>
<div class = "item bold">Roll</div>
<div class = "item bold">Description</div>
</div>
<fieldset class = "repeating_actions">
<div class = "grid grid3">
<div class = "item sa-moves">
<button type='roll' value='/roll @{actionroll}'><span style = "font-family: dicefontd6">F</span></button>
<input name = "attr_actionname" type = "text">
</div>
<div class = "item sa-roll">
<select name = "attr_actionroll">
<option>1d6</option>
<option>2d6k1</option>
<option selected>2d6</option>
<option>3d6k2</option>
<option>3d6</option>
</select>
</div>
<div class = "item sa-desc">
<textarea name = "attr_actiondesc"></textarea>
</div>
</div>
</fieldset>
<div class = "divider"></div>
<!--Traits-->
<div class = "grid grid1"><div class = "item statlabel">Traits</div></div>
<div class = "grid grid2b">
<div class = "item bold">Name</div>
<div class = "item bold">Description</div>
</div>
<fieldset class = "repeating_traits">
<div class = "grid grid2b">
<div class = "item tr-value">
<input type = "text" name = "attr_tr_val">
</div>
<div class = "item tr-desc">
<textarea class = "item tr-desc" name = "attr_tr_desc"></textarea>
</div>
</div>
</fieldset>
<!--Flaws-->
<div class = "grid grid1"><div class = "item statlabel">Flaws</div></div>
<div class = "grid grid2b">
<div class = "item bold">Name</div>
<div class = "item bold">Description</div>
</div>
<fieldset class = "repeating_flaws">
<div class = "grid grid2b">
<div class = "item fl-value">
<input type = "text" name = "attr_fl_val">
</div>
<div class = "item fl-desc">
<textarea class = "item fl-desc" name = "attr_fl_desc"></textarea>
</div>
</div>
</fieldset>
<!--Permanent flaws-->
<div class = "grid grid1"><div class = "item statlabel">Permanent Flaws</div></div>
<div class = "grid grid2b">
<div class = "item bold">Name</div>
<div class = "item bold">Description</div>
</div>
<fieldset class = "repeating_flaws2">
<div class = "grid grid2b">
<div class = "item fl2-value">
<input type = "text" name = "attr_fl2_val">
</div>
<div class = "item fl2-desc">
<textarea class = "item fl2-desc" name = "attr_fl2_desc"></textarea>
</div>
</div>
</fieldset>
<!--Conditions-->
<div class = "grid grid1"><div class = "item statlabel">Conditions</div></div>
<div class = "grid grid2b">
<div class = "item bold">Name</div>
<div class = "item bold">Description</div>
</div>
<fieldset class = "repeating_conds">
<div class = "grid grid2b">
<div class = "item cd-value">
<input type = "text" name = "attr_cond_name">
</div>
<div class = "item cd-desc">
<textarea class = "item fl2-desc" name = "attr_cond_desc"></textarea>
</div>
</div>
</fieldset>
<!---->
<div class = "divider"></div>
<!--Character Details-->
<div class = "grid grid1"><div class = "item statlabel">Character Details</div></div>
<div class = "grid grid4 gridgap">
<div class = "item bold">Age</div>
<div class = "item"><input type = "text" name = "attr_chr1"></div>
<div class = "item bold">Nationality</div>
<div class = "item"><input type = "text" name = "attr_chr2"></div>
<div class = "item bold">Birthday</div>
<div class = "item"><input type = "text" name = "attr_chr3"></div>
<div class = "item bold">Eye Color</div>
<div class = "item"><input type = "text" name = "attr_chr4"></div>
<div class = "item bold">Zodiac Sign</div>
<div class = "item"><input type = "text" name = "attr_chr5"></div>
<div class = "item bold">Favorite Movie</div>
<div class = "item"><input type = "text" name = "attr_chr6"></div>
<div class = "item bold">Gender</div>
<div class = "item"><input type = "text" name = "attr_chr7"></div>
<div class = "item bold">Favorite Food</div>
<div class = "item"><input type = "text" name = "attr_chr8"></div>
<div class = "item bold">Height</div>
<div class = "item"><input type = "text" name = "attr_chr9"></div>
<div class = "item bold">Favorite Actor</div>
<div class = "item"><input type = "text" name = "attr_chr10"></div>
<div class = "item bold">Weight</div>
<div class = "item"><input type = "text" name = "attr_chr11"></div>
<div class = "item bold">Favorite Musician</div>
<div class = "item"><input type = "text" name = "attr_chr12"></div>
<div class = "item bold">Blood Type</div>
<div class = "item"><input type = "text" name = "attr_chr13"></div>
<div class = "item bold">Favorite Athlete</div>
<div class = "item"><input type = "text" name = "attr_chr14"></div>
<div class = "item bold">Occupation</div>
<div class = "item"><input type = "text" name = "attr_chr15"></div>
<div class = "item bold"><input type = "text" name = "attr_chr16" value = "..."></div>
<div class = "item"><input type = "text" name = "attr_chr17"></div>
</div>
<div class = "divider"></div>
<div class = "grid grid1"><div class = "item statlabel">Character Bio</div></div>
<div class = "grid grid1 characterbio">
<div class = "item"><textarea name = "attr_charbio"></textarea></div>
</div>
</div>
<!--The section of the ~forbidden~ inputs. This should always go last. -->
<div class = "hidden">
<input name = "attr_power_dice" value = "2d6">
<input name = "attr_power_mod" value = "1">
<input name = "attr_speed_dice" value = "2d6">
<input name = "attr_speed_mod" value = "1">
<input name = "attr_range_dice" value = "2d6">
<input name = "attr_range_mod" value = "1">
<input name = "attr_durability_dice" value = "2d6">
<input name = "attr_durability_mod" value = "1">
<input name = "attr_precision_dice" value = "2d6">
<input name = "attr_precision_mod" value = "1">
<input name = "attr_learning_dice" value = "2d6">
<input name = "attr_learning_mod" value = "1">
<!--Stand checkbox-->
</div>
</div>
<!--Rolltemplate time -->
<rolltemplate class="sheet-rolltemplate-jjba">
</rolltemplate>
<!-- It's time for scripts -->
<script type="text/worker">
//here we go
var getSectionIDsOrdered = function (sectionName, callback) {
'use strict';
getAttrs([`_reporder_${sectionName}`], function (v) {
getSectionIDs(sectionName, function (idArray) {
let reporderArray = v[`_reporder_${sectionName}`] ? v[`_reporder_${sectionName}`].toLowerCase().split(',') : [],
ids = [...new Set(reporderArray.filter(x => idArray.includes(x)).concat(idArray))];
callback(ids);
});
});
};
//hides stand sections when box isn't checked
on("change:repeating_chartypes:chartype", function(eventInfo) {
getAttrs(["hasstand"], function(v) {
console.log(v);
log(eventInfo.newValue);
if (eventInfo.newValue == "No Stand"){
setAttrs({
hasstand: 0
});
}
console.log(v.hasstand)
});
});
on("remove:repeating_chartypes", function(eventInfo) {
console.log(eventInfo);
id = eventInfo.sourceAttribute;
obj = eventInfo.removedInfo;
if (obj[id + "_chartype"] == "No Stand"){
getAttrs(["hasstand"], function(v) {
console.log(v);
setAttrs({
hasstand: 1
});
console.log(v.hasstand)
});
}
});
//stat dice and mods
let rankvals = ["E","D","C","B","A"]
let dicevals = ["1d6","2d6k1","2d6","3d6k2","3d6"];
let modvals = ["-5","-3","+1","+3","+5"];
on("change:power_val", function(eventInfo) {
getAttrs(["power_val","power_dice","power_mod"], function(v) {
let value = v.power_val;
let index = rankvals.indexOf(value);
setAttrs({
power_dice: dicevals[index],
power_mod: modvals[index]
});
if (value == "E"){
console.log("Power is E rank!");
setAttrs({
power_cw: 1
});
} else {
setAttrs({
cw: 0,
power_cw: 0
});
}
});
});
on("change:speed_val", function(eventInfo) {
getAttrs(["speed_val","speed_dice","speed_mod"], function(v) {
let value = v.speed_val;
let index = rankvals.indexOf(value);
setAttrs({
speed_dice: dicevals[index],
speed_mod: modvals[index]
});
if (value == "E"){
setAttrs({
speed_cw: 1
});
} else {
setAttrs({
cw: 0,
speed_cw: 0
});
}
});
});
on("change:range_val", function(eventInfo) {
getAttrs(["range_val","range_dice","range_mod"], function(v) {
let value = v.range_val;
let index = rankvals.indexOf(value);
setAttrs({
range_dice: dicevals[index],
range_mod: modvals[index]
});
if (value == "E"){
setAttrs({
range_cw: 1
});
} else {
setAttrs({
cw: 0,
range_cw: 0
});
}
});
});
on("change:durability_val", function(eventInfo) {
getAttrs(["durability_val","durability_dice","durability_mod"], function(v) {
let value = v.durability_val;
let index = rankvals.indexOf(value);
setAttrs({
durability_dice: dicevals[index],
durability_mod: modvals[index]
});
if (value == "E"){
setAttrs({
durability_cw: 1
});
} else {
setAttrs({
cw: 0,
durability_cw: 0,
});
}
});
});
on("change:precision_val", function(eventInfo) {
getAttrs(["precision_val","precision_dice","precision_mod"], function(v) {
let value = v.precision_val;
let index = rankvals.indexOf(value);
setAttrs({
precision_dice: dicevals[index],
precision_mod: modvals[index]
});
if (value == "E"){
setAttrs({
precision_cw: 1
});
} else {
setAttrs({
precision_cw: 0
});
}
});
});
on("change:learning_val", function(eventInfo) {
getAttrs(["learning_val","learning_dice","learning_mod"], function(v) {
let value = v.learning_val;
let index = rankvals.indexOf(value);
setAttrs({
learning_dice: dicevals[index],
learning_mod: modvals[index]
});
if (value == "E"){
setAttrs({
learning_cw: 1
});
} else {
setAttrs({
learning_cw: 0
});
}
});
});
</script>
</html>