renormalize line-endings
@@ -1,26 +1,26 @@
|
||||
|
||||
const updateBonuses = () => {
|
||||
const array = ["strength","empathy","acuity","perception","willpower","intelligence"];
|
||||
|
||||
getAttrs(array, values => {
|
||||
|
||||
array.forEach(item => updateBonus(item, values[item]));
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
const updateBonus = (stat, new_value) => {
|
||||
const bonus = Math.floor(new_value/10);
|
||||
|
||||
const updateAttrs = {};
|
||||
|
||||
updateAttrs[`${stat}_bonus`] = bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
console.log(updateAttrs);
|
||||
}
|
||||
|
||||
["strength","empathy","acuity","perception","willpower","intelligence"].forEach(item => on(`change:${item}`, eventInfo => updateBonus(item, eventInfo.newValue)));
|
||||
|
||||
|
||||
const updateBonuses = () => {
|
||||
const array = ["strength","empathy","acuity","perception","willpower","intelligence"];
|
||||
|
||||
getAttrs(array, values => {
|
||||
|
||||
array.forEach(item => updateBonus(item, values[item]));
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
const updateBonus = (stat, new_value) => {
|
||||
const bonus = Math.floor(new_value/10);
|
||||
|
||||
const updateAttrs = {};
|
||||
|
||||
updateAttrs[`${stat}_bonus`] = bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
console.log(updateAttrs);
|
||||
}
|
||||
|
||||
["strength","empathy","acuity","perception","willpower","intelligence"].forEach(item => on(`change:${item}`, eventInfo => updateBonus(item, eventInfo.newValue)));
|
||||
|
||||
on(`sheet:opened`, eventInfo => updateBonuses())
|
||||
@@ -1,221 +1,221 @@
|
||||
include mixins.pug
|
||||
|
||||
.ac-wrapper
|
||||
h1(data-i18n="DHF Protectorate Citizenship Record") DHF Protectorate Citizenship Record
|
||||
.ac-header
|
||||
.ac-header__grid
|
||||
each entry in ["Character Name", "Planet of Origin", "Age", "Sleeve Type", "Archetype", "Campaign"]
|
||||
-
|
||||
const attr = entry.toLowerCase().replace(/ /g,"_");
|
||||
.ac-header__item
|
||||
.ac-header__label(data-i18n=entry)=entry
|
||||
input.ac-header__input(name=`attr_${attr}`, type="text")
|
||||
each entry in ["Stackpoints", "Influence Points", "Ego Points", "Wealth Level"]
|
||||
- const attr = entry.toLowerCase().replace(/ /g,"_");
|
||||
.ac-header__item--subitem
|
||||
.ac-header__label(data-i18n=entry)=entry
|
||||
input.ac-header__input(name=`attr_${attr}`, type="text")
|
||||
.ac-nav
|
||||
each link in ["Character Sheet", "Equipment"]
|
||||
label.ac-nav__item
|
||||
input.ac-nav__hide(type="radio", name="attr_nav", value=link)
|
||||
.ac-nav__label(data-i18n=link)=link
|
||||
|
||||
input.ac-nav__hide(type="hidden", name="attr_nav")
|
||||
.ac-body
|
||||
.ac-body__stats
|
||||
each entry in [{"Strength":["Athletics", "Brawl", "Endurance", "Melee Combat", "Toughness"]},{"Perception":["Detection", "D. Energy Wpns", "Firearms", "Search", "Stealth", "Throw"]},{"Empathy":["Diplomacy", "Expression", "Read Person"]}, {"Willpower":["Composure", "Discipline", "Intimidation"]}, {"Acuity":["Data Analysis", "Data Engineering", "Digi. Networking", "Investigation", "Mechanics", "Navigation", "Pilot", "Survival"]}, {"Intelligence":["Bureaucracy", "Cultures", "Engineering", "Geography", "History", "Science", "Medicine"]}]
|
||||
-
|
||||
const block_title = Object.keys(entry)[0];
|
||||
const skill_array = Object.values(entry)[0];
|
||||
const attr = block_title.toLowerCase().replace(/ /g,"_");
|
||||
.ac-stat
|
||||
.ac-stat__header
|
||||
.ac-stat__title(data-i18n=block_title)=block_title
|
||||
.ac-stat__value
|
||||
input(name=`attr_${attr}`, type="number", value=20)
|
||||
span.ac-stat__bonus(name=`attr_${attr}_bonus`) -
|
||||
.ac-stat__body
|
||||
each skill in skill_array
|
||||
-
|
||||
const attr = skill.toLowerCase().replace(/ /g,"_");
|
||||
const roll = [
|
||||
`&{template:alteredcarbon}`,
|
||||
`{{name=${skill}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{target_number=?{Target Number|5}}}`,
|
||||
`{{roll=[[@{${attr}}]]}}`,
|
||||
`{{bonus=[[?{Number of Bonus Dice|0}?{Bonus|none,0|d20,d20cs1cf20kl1|d12,d12cs1cf12kl1|d10,d10cs1cf10kl1|d8,d8cs1cf8kl1|d6,d6cs1cf6kl1|d4,d4cs1cf4kl1}]]}}`,
|
||||
`{{luck=[[?{Luck|none,0|d20,d20cs1cf20|d12,d12cs1cf12|d10,d10cs1cf10|d8,d8cs1cf8|d6,d6cs1cf6|d4,d4cs1cf4}]]}}`
|
||||
].join(" ");
|
||||
.ac-skill
|
||||
button.ac-skill__name(data-i18n=skill, type="roll", value=roll)=skill
|
||||
.ac-skill__value
|
||||
select(name=`attr_${attr}`)
|
||||
+dice-select()
|
||||
.ac-body__traits
|
||||
each repeating in ["Traits", "Abilities", "Specializations"]
|
||||
- const attr = repeating.toLowerCase().replace(/ /g,"_");
|
||||
.ac-traits
|
||||
.ac-traits__header(data-i18n=repeating)=repeating
|
||||
fieldset(class=`repeating_${attr}`)
|
||||
.ac-trait
|
||||
.ac-trait__title
|
||||
input.ac-trait__input(data-i18n-placeholder="Name", name=`attr_${attr}_name`, type="text")
|
||||
.ac-trait__description
|
||||
textarea(data-i18n-placeholder="Description", name=`attr_${attr}_description`)
|
||||
.ac-body__misc
|
||||
.ac-body__col
|
||||
.ac-networks
|
||||
.ac-networks__header(data-i18n="Networks/Contacts") Networks/Contacts
|
||||
fieldset(class=`repeating_networks`)
|
||||
.ac-networks__item
|
||||
input.ac-networks__input(name="attr_network", type="text")
|
||||
.ac-baggage
|
||||
.ac-baggage__header(data-i18n="Baggage/Scandals") Baggage/Scandals
|
||||
fieldset(class=`repeating_baggage`)
|
||||
.ac-baggage__item
|
||||
textarea.ac-baggage__input(name="attr_baggage", type="text")
|
||||
.ac-body__col
|
||||
.ac-biometrics
|
||||
.ac-biometrics__header(data-i18n="Sleeve Biometrics") Sleeve Biometrics
|
||||
.ac-biometrics__container
|
||||
.ac-biometrics__row
|
||||
.ac-biometrics__label(data-i18n="Tech Points") Tech Points
|
||||
.ac-biometrics__input--minmax
|
||||
input.ac-minmax(name="attr_techpoints", type="number")
|
||||
| /
|
||||
input.ac-minmax(name="attr_techpoints_max", type="number")
|
||||
.ac-biometrics__row
|
||||
.ac-biometrics__label(data-i18n="Damage Threshold") Damage Threshold
|
||||
.ac-biometrics__input
|
||||
input.ac-minmax(name="attr_damagethreshold", type="text")
|
||||
.ac-biometrics__row--textarea
|
||||
.ac-biometrics__label(data-i18n="Special") Special
|
||||
.ac-biometrics__input
|
||||
textarea(name="attr_special")
|
||||
.ac-health
|
||||
.ac-health__row
|
||||
.ac-health__label(data-i18n="Health Points") Health Points
|
||||
.ac-health__input--minmax
|
||||
input.ac-minmax(name="attr_hitpoints", type="number")
|
||||
| /
|
||||
input.ac-minmax(name="attr_hitpoints_max", type="number")
|
||||
.ac-health__injuries
|
||||
.ac-health__label(data-i18n="Injuries") Injuries
|
||||
fieldset(class=`repeating_injuries`)
|
||||
.ac-networks__item
|
||||
input.ac-networks__input(name="attr_injuries", type="text")
|
||||
.ac-equipment
|
||||
.ac-equipment__credits
|
||||
.ac-credits
|
||||
.ac-credits__title(data-i18n="Credits")
|
||||
each level in [1, 2, 3, 4, 5]
|
||||
.ac-credits__item
|
||||
.ac-credits__label(data-i18n=`Lv.${level}`) Lv.#{level}
|
||||
input.ac-credits__input(name=`attr_credits_${level}`, type="text")
|
||||
|
||||
.ac-equipment__equipment
|
||||
.ac-equipment__header(data-i18n="Equipment") Equipment
|
||||
fieldset(class=`repeating_equipment`)
|
||||
.ac-item
|
||||
.ac-item__row--name
|
||||
.ac-item__label--name(data-i18n="Name") Name
|
||||
input(name="attr_equipment_name", type="text")
|
||||
.ac-item__price
|
||||
.ac-item__label(data-i18n="Price Level") Price Level
|
||||
input(name="attr_equipment_price", type="text")
|
||||
.ac-item__row--skillchecks
|
||||
.ac-item__label(data-i18n="Skill Check(s)") Skill Check(s)
|
||||
span.ac-item__wrap {
|
||||
input.ac-item__input--wrap(name="attr_equipment_checks", type="text")
|
||||
span.ac-item__wrap }
|
||||
.ac-item__bonus
|
||||
.ac-item__label--small +
|
||||
input(name="attr_equipment_bonusdice", type="text")
|
||||
.ac-item__label--small ×
|
||||
.ac-item__label--small(data-i18n="Bonus Dice") Bonus Dice
|
||||
.ac-item__row--checks
|
||||
.ac-item__label(data-i18n="Tech Point Chassis") Tech Point Chassis
|
||||
.ac-item__checkmarks
|
||||
each index in [1,2,3,4,5,6,7,8,9,10]
|
||||
label.ac-checkmark
|
||||
input(name="attr_equipment_tp_chassis", type="radio", value=index)
|
||||
span
|
||||
.ac-item__row--checks
|
||||
.ac-item__label(data-i18n="Tech Points Used") Tech Points Used
|
||||
.ac-item__checkmarks
|
||||
each index in [1,2,3,4,5,6,7,8,9,10]
|
||||
label.ac-checkmark--red
|
||||
input(name="attr_equipment_tp_used", type="radio", value=index)
|
||||
span
|
||||
.ac-item__row--special
|
||||
.ac-item__special
|
||||
.ac-item__label(data-i18n="Special") Special
|
||||
textarea.ac-item__textarea(name="attr_equipment_special")
|
||||
.ac-item__row
|
||||
.ac-item__triggered
|
||||
.ac-item__label(data-i18n="Triggered Effects") Triggered Effects
|
||||
each index in [1,2,3,4,5]
|
||||
.ac-item__checkmarks
|
||||
each ch_index in [1,2,3,4,5]
|
||||
label.ac-checkmark--cyan
|
||||
input(name=`attr_equipment_triggered_${index}`, type="radio", value=ch_index)
|
||||
span
|
||||
.ac-item__input
|
||||
input(name=`attr_equipment_triggered_${index}_desc`, type="text")
|
||||
|
||||
.ac-equipment__tools
|
||||
.ac-equipment__header(data-i18n="Tools") Tools
|
||||
fieldset(class=`repeating_tools`)
|
||||
.ac-tool
|
||||
.ac-tool__row--name
|
||||
.ac-tool__label--name(data-i18n="Name") Name
|
||||
input(name="attr_equipment_name", type="text")
|
||||
.ac-tool__price
|
||||
.ac-tool__label(data-i18n="Price Level") Price Level
|
||||
input(name="attr_equipment_price", type="text")
|
||||
.ac-tool__row--skillchecks
|
||||
.ac-tool__label(data-i18n="Skill Check(s)") Skill Check(s)
|
||||
span.ac-tool__wrap {
|
||||
input.ac-tool__input--wrap(name="attr_equipment_checks", type="text")
|
||||
span.ac-tool__wrap }
|
||||
.ac-tool__bonus
|
||||
.ac-tool__label--small +
|
||||
input(name="attr_equipment_bonusdice", type="text")
|
||||
.ac-tool__label--small ×
|
||||
.ac-tool__label--small(data-i18n="Bonus Dice") Bonus Dice
|
||||
.ac-tool__row--skillchecks
|
||||
.ac-tool__label(data-i18n="Skill Check(s)") Skill Check(s)
|
||||
span.ac-tool__wrap {
|
||||
input.ac-tool__input--wrap(name="attr_equipment_checks", type="text")
|
||||
span.ac-tool__wrap }
|
||||
.ac-tool__bonus
|
||||
.ac-tool__label--small +
|
||||
input(name="attr_equipment_bonusdice", type="text")
|
||||
.ac-tool__label--small ×
|
||||
.ac-tool__label--small(data-i18n="Bonus Dice") Bonus Dice
|
||||
.ac-tool__row--checks
|
||||
.ac-tool__label(data-i18n="Tech Point Chassis") Tech Point Chassis
|
||||
.ac-tool__checkmarks
|
||||
each index in [1,2,3,4,5]
|
||||
label.ac-checkmark
|
||||
input(name="attr_equipment_tp_chassis", type="radio", value=index)
|
||||
span
|
||||
.ac-tool__row--checks
|
||||
.ac-tool__label(data-i18n="Tech Points Used") Tech Points Used
|
||||
.ac-tool__checkmarks
|
||||
each index in [1,2,3,4,5]
|
||||
label.ac-checkmark--red
|
||||
input(name="attr_equipment_tp_used", type="radio", value=index)
|
||||
span
|
||||
.ac-tool__row--special
|
||||
.ac-tool__special
|
||||
.ac-tool__label(data-i18n="Special") Special
|
||||
textarea.ac-tool__textarea(name="attr_tool_special")
|
||||
|
||||
include rolltemplates.pug
|
||||
|
||||
script(type="text/worker")
|
||||
|
||||
include mixins.pug
|
||||
|
||||
.ac-wrapper
|
||||
h1(data-i18n="DHF Protectorate Citizenship Record") DHF Protectorate Citizenship Record
|
||||
.ac-header
|
||||
.ac-header__grid
|
||||
each entry in ["Character Name", "Planet of Origin", "Age", "Sleeve Type", "Archetype", "Campaign"]
|
||||
-
|
||||
const attr = entry.toLowerCase().replace(/ /g,"_");
|
||||
.ac-header__item
|
||||
.ac-header__label(data-i18n=entry)=entry
|
||||
input.ac-header__input(name=`attr_${attr}`, type="text")
|
||||
each entry in ["Stackpoints", "Influence Points", "Ego Points", "Wealth Level"]
|
||||
- const attr = entry.toLowerCase().replace(/ /g,"_");
|
||||
.ac-header__item--subitem
|
||||
.ac-header__label(data-i18n=entry)=entry
|
||||
input.ac-header__input(name=`attr_${attr}`, type="text")
|
||||
.ac-nav
|
||||
each link in ["Character Sheet", "Equipment"]
|
||||
label.ac-nav__item
|
||||
input.ac-nav__hide(type="radio", name="attr_nav", value=link)
|
||||
.ac-nav__label(data-i18n=link)=link
|
||||
|
||||
input.ac-nav__hide(type="hidden", name="attr_nav")
|
||||
.ac-body
|
||||
.ac-body__stats
|
||||
each entry in [{"Strength":["Athletics", "Brawl", "Endurance", "Melee Combat", "Toughness"]},{"Perception":["Detection", "D. Energy Wpns", "Firearms", "Search", "Stealth", "Throw"]},{"Empathy":["Diplomacy", "Expression", "Read Person"]}, {"Willpower":["Composure", "Discipline", "Intimidation"]}, {"Acuity":["Data Analysis", "Data Engineering", "Digi. Networking", "Investigation", "Mechanics", "Navigation", "Pilot", "Survival"]}, {"Intelligence":["Bureaucracy", "Cultures", "Engineering", "Geography", "History", "Science", "Medicine"]}]
|
||||
-
|
||||
const block_title = Object.keys(entry)[0];
|
||||
const skill_array = Object.values(entry)[0];
|
||||
const attr = block_title.toLowerCase().replace(/ /g,"_");
|
||||
.ac-stat
|
||||
.ac-stat__header
|
||||
.ac-stat__title(data-i18n=block_title)=block_title
|
||||
.ac-stat__value
|
||||
input(name=`attr_${attr}`, type="number", value=20)
|
||||
span.ac-stat__bonus(name=`attr_${attr}_bonus`) -
|
||||
.ac-stat__body
|
||||
each skill in skill_array
|
||||
-
|
||||
const attr = skill.toLowerCase().replace(/ /g,"_");
|
||||
const roll = [
|
||||
`&{template:alteredcarbon}`,
|
||||
`{{name=${skill}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{target_number=?{Target Number|5}}}`,
|
||||
`{{roll=[[@{${attr}}]]}}`,
|
||||
`{{bonus=[[?{Number of Bonus Dice|0}?{Bonus|none,0|d20,d20cs1cf20kl1|d12,d12cs1cf12kl1|d10,d10cs1cf10kl1|d8,d8cs1cf8kl1|d6,d6cs1cf6kl1|d4,d4cs1cf4kl1}]]}}`,
|
||||
`{{luck=[[?{Luck|none,0|d20,d20cs1cf20|d12,d12cs1cf12|d10,d10cs1cf10|d8,d8cs1cf8|d6,d6cs1cf6|d4,d4cs1cf4}]]}}`
|
||||
].join(" ");
|
||||
.ac-skill
|
||||
button.ac-skill__name(data-i18n=skill, type="roll", value=roll)=skill
|
||||
.ac-skill__value
|
||||
select(name=`attr_${attr}`)
|
||||
+dice-select()
|
||||
.ac-body__traits
|
||||
each repeating in ["Traits", "Abilities", "Specializations"]
|
||||
- const attr = repeating.toLowerCase().replace(/ /g,"_");
|
||||
.ac-traits
|
||||
.ac-traits__header(data-i18n=repeating)=repeating
|
||||
fieldset(class=`repeating_${attr}`)
|
||||
.ac-trait
|
||||
.ac-trait__title
|
||||
input.ac-trait__input(data-i18n-placeholder="Name", name=`attr_${attr}_name`, type="text")
|
||||
.ac-trait__description
|
||||
textarea(data-i18n-placeholder="Description", name=`attr_${attr}_description`)
|
||||
.ac-body__misc
|
||||
.ac-body__col
|
||||
.ac-networks
|
||||
.ac-networks__header(data-i18n="Networks/Contacts") Networks/Contacts
|
||||
fieldset(class=`repeating_networks`)
|
||||
.ac-networks__item
|
||||
input.ac-networks__input(name="attr_network", type="text")
|
||||
.ac-baggage
|
||||
.ac-baggage__header(data-i18n="Baggage/Scandals") Baggage/Scandals
|
||||
fieldset(class=`repeating_baggage`)
|
||||
.ac-baggage__item
|
||||
textarea.ac-baggage__input(name="attr_baggage", type="text")
|
||||
.ac-body__col
|
||||
.ac-biometrics
|
||||
.ac-biometrics__header(data-i18n="Sleeve Biometrics") Sleeve Biometrics
|
||||
.ac-biometrics__container
|
||||
.ac-biometrics__row
|
||||
.ac-biometrics__label(data-i18n="Tech Points") Tech Points
|
||||
.ac-biometrics__input--minmax
|
||||
input.ac-minmax(name="attr_techpoints", type="number")
|
||||
| /
|
||||
input.ac-minmax(name="attr_techpoints_max", type="number")
|
||||
.ac-biometrics__row
|
||||
.ac-biometrics__label(data-i18n="Damage Threshold") Damage Threshold
|
||||
.ac-biometrics__input
|
||||
input.ac-minmax(name="attr_damagethreshold", type="text")
|
||||
.ac-biometrics__row--textarea
|
||||
.ac-biometrics__label(data-i18n="Special") Special
|
||||
.ac-biometrics__input
|
||||
textarea(name="attr_special")
|
||||
.ac-health
|
||||
.ac-health__row
|
||||
.ac-health__label(data-i18n="Health Points") Health Points
|
||||
.ac-health__input--minmax
|
||||
input.ac-minmax(name="attr_hitpoints", type="number")
|
||||
| /
|
||||
input.ac-minmax(name="attr_hitpoints_max", type="number")
|
||||
.ac-health__injuries
|
||||
.ac-health__label(data-i18n="Injuries") Injuries
|
||||
fieldset(class=`repeating_injuries`)
|
||||
.ac-networks__item
|
||||
input.ac-networks__input(name="attr_injuries", type="text")
|
||||
.ac-equipment
|
||||
.ac-equipment__credits
|
||||
.ac-credits
|
||||
.ac-credits__title(data-i18n="Credits")
|
||||
each level in [1, 2, 3, 4, 5]
|
||||
.ac-credits__item
|
||||
.ac-credits__label(data-i18n=`Lv.${level}`) Lv.#{level}
|
||||
input.ac-credits__input(name=`attr_credits_${level}`, type="text")
|
||||
|
||||
.ac-equipment__equipment
|
||||
.ac-equipment__header(data-i18n="Equipment") Equipment
|
||||
fieldset(class=`repeating_equipment`)
|
||||
.ac-item
|
||||
.ac-item__row--name
|
||||
.ac-item__label--name(data-i18n="Name") Name
|
||||
input(name="attr_equipment_name", type="text")
|
||||
.ac-item__price
|
||||
.ac-item__label(data-i18n="Price Level") Price Level
|
||||
input(name="attr_equipment_price", type="text")
|
||||
.ac-item__row--skillchecks
|
||||
.ac-item__label(data-i18n="Skill Check(s)") Skill Check(s)
|
||||
span.ac-item__wrap {
|
||||
input.ac-item__input--wrap(name="attr_equipment_checks", type="text")
|
||||
span.ac-item__wrap }
|
||||
.ac-item__bonus
|
||||
.ac-item__label--small +
|
||||
input(name="attr_equipment_bonusdice", type="text")
|
||||
.ac-item__label--small ×
|
||||
.ac-item__label--small(data-i18n="Bonus Dice") Bonus Dice
|
||||
.ac-item__row--checks
|
||||
.ac-item__label(data-i18n="Tech Point Chassis") Tech Point Chassis
|
||||
.ac-item__checkmarks
|
||||
each index in [1,2,3,4,5,6,7,8,9,10]
|
||||
label.ac-checkmark
|
||||
input(name="attr_equipment_tp_chassis", type="radio", value=index)
|
||||
span
|
||||
.ac-item__row--checks
|
||||
.ac-item__label(data-i18n="Tech Points Used") Tech Points Used
|
||||
.ac-item__checkmarks
|
||||
each index in [1,2,3,4,5,6,7,8,9,10]
|
||||
label.ac-checkmark--red
|
||||
input(name="attr_equipment_tp_used", type="radio", value=index)
|
||||
span
|
||||
.ac-item__row--special
|
||||
.ac-item__special
|
||||
.ac-item__label(data-i18n="Special") Special
|
||||
textarea.ac-item__textarea(name="attr_equipment_special")
|
||||
.ac-item__row
|
||||
.ac-item__triggered
|
||||
.ac-item__label(data-i18n="Triggered Effects") Triggered Effects
|
||||
each index in [1,2,3,4,5]
|
||||
.ac-item__checkmarks
|
||||
each ch_index in [1,2,3,4,5]
|
||||
label.ac-checkmark--cyan
|
||||
input(name=`attr_equipment_triggered_${index}`, type="radio", value=ch_index)
|
||||
span
|
||||
.ac-item__input
|
||||
input(name=`attr_equipment_triggered_${index}_desc`, type="text")
|
||||
|
||||
.ac-equipment__tools
|
||||
.ac-equipment__header(data-i18n="Tools") Tools
|
||||
fieldset(class=`repeating_tools`)
|
||||
.ac-tool
|
||||
.ac-tool__row--name
|
||||
.ac-tool__label--name(data-i18n="Name") Name
|
||||
input(name="attr_equipment_name", type="text")
|
||||
.ac-tool__price
|
||||
.ac-tool__label(data-i18n="Price Level") Price Level
|
||||
input(name="attr_equipment_price", type="text")
|
||||
.ac-tool__row--skillchecks
|
||||
.ac-tool__label(data-i18n="Skill Check(s)") Skill Check(s)
|
||||
span.ac-tool__wrap {
|
||||
input.ac-tool__input--wrap(name="attr_equipment_checks", type="text")
|
||||
span.ac-tool__wrap }
|
||||
.ac-tool__bonus
|
||||
.ac-tool__label--small +
|
||||
input(name="attr_equipment_bonusdice", type="text")
|
||||
.ac-tool__label--small ×
|
||||
.ac-tool__label--small(data-i18n="Bonus Dice") Bonus Dice
|
||||
.ac-tool__row--skillchecks
|
||||
.ac-tool__label(data-i18n="Skill Check(s)") Skill Check(s)
|
||||
span.ac-tool__wrap {
|
||||
input.ac-tool__input--wrap(name="attr_equipment_checks", type="text")
|
||||
span.ac-tool__wrap }
|
||||
.ac-tool__bonus
|
||||
.ac-tool__label--small +
|
||||
input(name="attr_equipment_bonusdice", type="text")
|
||||
.ac-tool__label--small ×
|
||||
.ac-tool__label--small(data-i18n="Bonus Dice") Bonus Dice
|
||||
.ac-tool__row--checks
|
||||
.ac-tool__label(data-i18n="Tech Point Chassis") Tech Point Chassis
|
||||
.ac-tool__checkmarks
|
||||
each index in [1,2,3,4,5]
|
||||
label.ac-checkmark
|
||||
input(name="attr_equipment_tp_chassis", type="radio", value=index)
|
||||
span
|
||||
.ac-tool__row--checks
|
||||
.ac-tool__label(data-i18n="Tech Points Used") Tech Points Used
|
||||
.ac-tool__checkmarks
|
||||
each index in [1,2,3,4,5]
|
||||
label.ac-checkmark--red
|
||||
input(name="attr_equipment_tp_used", type="radio", value=index)
|
||||
span
|
||||
.ac-tool__row--special
|
||||
.ac-tool__special
|
||||
.ac-tool__label(data-i18n="Special") Special
|
||||
textarea.ac-tool__textarea(name="attr_tool_special")
|
||||
|
||||
include rolltemplates.pug
|
||||
|
||||
script(type="text/worker")
|
||||
|
||||
include ../js/sheetworker.js
|
||||
@@ -1,4 +1,4 @@
|
||||
mixin dice-select(selected)
|
||||
- const dice = ["20", "12", "10", "8", "6", "4"];
|
||||
each die in dice
|
||||
mixin dice-select(selected)
|
||||
- const dice = ["20", "12", "10", "8", "6", "4"];
|
||||
each die in dice
|
||||
option(value=`d${die}cs1cf${die}` selected=(die == selected)) d#{die}
|
||||
@@ -1,56 +1,56 @@
|
||||
|
||||
rolltemplate.sheet-rolltemplate-alteredcarbon
|
||||
.ac-roll-container
|
||||
| {{#name}}
|
||||
h1 {{name}}
|
||||
| {{/name}}
|
||||
.ac-roll-body
|
||||
| {{#character_name}}
|
||||
h2 {{character_name}}
|
||||
| {{/character_name}}
|
||||
| {{#target_number}}
|
||||
.ac-roll-target
|
||||
span.ac-roll-target-label(data-i18n="Target")
|
||||
span.ac-roll-target-value {{target_number}}
|
||||
| {{/target_number}}
|
||||
.ac-roll-result
|
||||
| {{#roll}}
|
||||
.ac-roll-result-roll
|
||||
strong(data-i18n="Roll")
|
||||
div {{roll}}
|
||||
| {{/roll}}
|
||||
| {{#rollGreater() luck 0}}
|
||||
.ac-roll-result-luck
|
||||
strong(data-i18n="Luck")
|
||||
div {{luck}}
|
||||
| {{/rollGreater() luck 0}}
|
||||
| {{#rollGreater() bonus 0}}
|
||||
.ac-roll-result-bonus
|
||||
strong(data-i18n="Bonus")
|
||||
div {{bonus}}
|
||||
| {{/rollGreater() bonus 0}}
|
||||
|
||||
.ac-roll-tag
|
||||
| {{#rollWasCrit() roll}}
|
||||
| {{#^rollWasCrit() luck}}
|
||||
.ac-roll-ace(data-i18n="Ace")
|
||||
| {{/^rollWasCrit() luck}}
|
||||
| {{/rollWasCrit() roll}}
|
||||
|
||||
| {{#^rollWasCrit() roll}}
|
||||
| {{#rollWasCrit() bonus}}
|
||||
.ac-roll-ace(data-i18n="Ace")
|
||||
| {{/rollWasCrit() bonus}}
|
||||
| {{/^rollWasCrit() roll}}
|
||||
|
||||
| {{#rollWasCrit() roll}}
|
||||
| {{#rollWasCrit() luck}}
|
||||
.ac-roll-stroke(data-i18n="Stroke of Luck")
|
||||
| {{/rollWasCrit() luck}}
|
||||
| {{/rollWasCrit() roll}}
|
||||
|
||||
| {{#rollWasFumble() roll}}
|
||||
| {{#rollWasFumble() luck}}
|
||||
.ac-roll-catastrophe(data-i18n="Catastrophe")
|
||||
| {{/rollWasFumble() luck}}
|
||||
|
||||
rolltemplate.sheet-rolltemplate-alteredcarbon
|
||||
.ac-roll-container
|
||||
| {{#name}}
|
||||
h1 {{name}}
|
||||
| {{/name}}
|
||||
.ac-roll-body
|
||||
| {{#character_name}}
|
||||
h2 {{character_name}}
|
||||
| {{/character_name}}
|
||||
| {{#target_number}}
|
||||
.ac-roll-target
|
||||
span.ac-roll-target-label(data-i18n="Target")
|
||||
span.ac-roll-target-value {{target_number}}
|
||||
| {{/target_number}}
|
||||
.ac-roll-result
|
||||
| {{#roll}}
|
||||
.ac-roll-result-roll
|
||||
strong(data-i18n="Roll")
|
||||
div {{roll}}
|
||||
| {{/roll}}
|
||||
| {{#rollGreater() luck 0}}
|
||||
.ac-roll-result-luck
|
||||
strong(data-i18n="Luck")
|
||||
div {{luck}}
|
||||
| {{/rollGreater() luck 0}}
|
||||
| {{#rollGreater() bonus 0}}
|
||||
.ac-roll-result-bonus
|
||||
strong(data-i18n="Bonus")
|
||||
div {{bonus}}
|
||||
| {{/rollGreater() bonus 0}}
|
||||
|
||||
.ac-roll-tag
|
||||
| {{#rollWasCrit() roll}}
|
||||
| {{#^rollWasCrit() luck}}
|
||||
.ac-roll-ace(data-i18n="Ace")
|
||||
| {{/^rollWasCrit() luck}}
|
||||
| {{/rollWasCrit() roll}}
|
||||
|
||||
| {{#^rollWasCrit() roll}}
|
||||
| {{#rollWasCrit() bonus}}
|
||||
.ac-roll-ace(data-i18n="Ace")
|
||||
| {{/rollWasCrit() bonus}}
|
||||
| {{/^rollWasCrit() roll}}
|
||||
|
||||
| {{#rollWasCrit() roll}}
|
||||
| {{#rollWasCrit() luck}}
|
||||
.ac-roll-stroke(data-i18n="Stroke of Luck")
|
||||
| {{/rollWasCrit() luck}}
|
||||
| {{/rollWasCrit() roll}}
|
||||
|
||||
| {{#rollWasFumble() roll}}
|
||||
| {{#rollWasFumble() luck}}
|
||||
.ac-roll-catastrophe(data-i18n="Catastrophe")
|
||||
| {{/rollWasFumble() luck}}
|
||||
| {{/rollWasFumble() roll}}
|
||||
@@ -1,299 +1,299 @@
|
||||
var Ammo = Ammo || (function() {
|
||||
'use strict';
|
||||
|
||||
var version = '0.3.7',
|
||||
lastUpdate = 1490362793,
|
||||
schemaVersion = 0.1,
|
||||
|
||||
ch = function (c) {
|
||||
var entities = {
|
||||
'<' : 'lt',
|
||||
'>' : 'gt',
|
||||
"'" : '#39',
|
||||
'@' : '#64',
|
||||
'{' : '#123',
|
||||
'|' : '#124',
|
||||
'}' : '#125',
|
||||
'[' : '#91',
|
||||
']' : '#93',
|
||||
'"' : 'quot',
|
||||
'-' : 'mdash',
|
||||
' ' : 'nbsp'
|
||||
};
|
||||
|
||||
if(_.has(entities,c) ){
|
||||
return ('&'+entities[c]+';');
|
||||
}
|
||||
return '';
|
||||
},
|
||||
sendMessage = function(message, who) {
|
||||
sendChat('Ammo', (who ? ('/w '+who+' ') : '') + '<div style="padding:1px 3px;border: 1px solid #8B4513;background: #eeffee; color: #8B4513; font-size: 80%;">'+
|
||||
message+
|
||||
'</div>'
|
||||
);
|
||||
},
|
||||
|
||||
adjustAmmo = function (who,attr,amount,label,playerid) {
|
||||
var val = parseInt(attr.get('current'),10)||0,
|
||||
max = parseInt(attr.get('max'),10)||10000,
|
||||
adj = (val+amount),
|
||||
chr = getObj('character',attr.get('characterid')),
|
||||
valid = true;
|
||||
label=label||'ammo';
|
||||
|
||||
if(adj < 0 ) {
|
||||
sendMessage(
|
||||
'<b>'+chr.get('name') + '</b> does not have enough '+label+'. Needs '+Math.abs(amount)+', but only has '+
|
||||
'<span style="color: #ff0000;">'+val+'</span>.'+
|
||||
'<span style="font-weight:normal;color:#708090;>'+ch('[')+'Attribute: '+attr.get('name')+ch(']')+'</span>',
|
||||
who
|
||||
);
|
||||
valid = false;
|
||||
} else if( adj > max) {
|
||||
sendMessage(
|
||||
'<b>'+chr.get('name') + '</b> does not have enough storage space for '+label+'. Needs '+adj+', but only has '+
|
||||
'<span style="color: #ff0000;">'+max+'</span>.'+
|
||||
'<span style="font-weight:normal;color:#708090;>'+ch('[')+'Attribute: '+attr.get('name')+ch(']')+'</span>',
|
||||
who
|
||||
);
|
||||
valid = false;
|
||||
}
|
||||
|
||||
if( playerIsGM(playerid) || valid ) {
|
||||
attr.set({current: adj});
|
||||
sendMessage(
|
||||
'<b>'+chr.get('name') + '</b> '+( (adj<val) ? 'uses' : 'gains' )+' '+Math.abs(amount)+' '+label+' and has '+adj+' remaining.',
|
||||
who
|
||||
);
|
||||
if(!valid) {
|
||||
sendMessage(
|
||||
'Ignoring warnings and applying adjustment anyway. Was: '+val+'/'+max+' Now: '+adj+'/'+max,
|
||||
who
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
showHelp = function(who,playerid) {
|
||||
|
||||
sendChat('',
|
||||
'/w "'+who+'" '+
|
||||
'<div style="border: 1px solid black; background-color: white; padding: 3px 3px;">'+
|
||||
'<div style="font-weight: bold; border-bottom: 1px solid black;font-size: 130%;">'+
|
||||
'Ammo v'+version+
|
||||
'</div>'+
|
||||
'<div style="padding-left:10px;margin-bottom:3px;">'+
|
||||
'<p>Ammo provides inventory management for ammunition stored in a character '+
|
||||
'attribute. If the adjustment would change the attribute to be below 0 or above '+
|
||||
'it'+ch("'")+'s maximum value, a warning will be issued and the attribute will not be'+
|
||||
'changed.</p>'+
|
||||
|
||||
( (playerIsGM(playerid)) ? '<p><b>Note:</b> As the GM, bounds will not be '+
|
||||
'enforced for you. You will be whispered the warnings, but the operation '+
|
||||
'will succeed. You will also be told the previous and current state in case '+
|
||||
'you want to revert the change.' : '')+
|
||||
|
||||
'</div>'+
|
||||
'<b>Commands</b>'+
|
||||
'<div style="padding-left:10px;">'+
|
||||
'<b><span style="font-family: serif;">!ammo '+ch('<')+'id'+ch('>')+' '+ch('<')+'attribute'+ch('>')+' '+ch('<')+'amount'+ch('>')+' '+ch('[')+'resource name'+ch(']')+'</span></b>'+
|
||||
'<div style="padding-left: 10px;padding-right:20px">'+
|
||||
'This command requires 3 parameters:'+
|
||||
'<ul>'+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">id</span></b> -- The id of the character which has the attribute. You can pass this as '+ch('@')+ch('{')+'selected|token_id'+ch('}')+' and the character id will be pulled from represents field of the token.'+
|
||||
'</li> '+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">attribute</span></b> -- The name of the attribute representing ammunition.'+
|
||||
'</li> '+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">amount</span></b> -- The change to apply to the current quantity of ammo. Use negative numbers to decrease the amount, and positive numbers to increase it. You can use inline rolls to determine the number.'+
|
||||
'</li> '+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">resource name</span></b> -- Anything you put after the amount to adjust by will be used as the resource name (default: "ammo").'+
|
||||
'</li> '+
|
||||
'</ul>'+
|
||||
'</div>'+
|
||||
'<b><span style="font-family: serif;">!wammo '+ch('<')+'id'+ch('>')+' '+ch('<')+'attribute'+ch('>')+' '+ch('<')+'amount'+ch('>')+' '+ch('[')+'resource name'+ch(']')+'</span></b>'+
|
||||
'<div style="padding-left: 10px;padding-right:20px">'+
|
||||
'This command is identical to !ammo but will whisper all output.'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'</div>'
|
||||
);
|
||||
},
|
||||
|
||||
attrLookup = function(character,name,caseSensitive){
|
||||
let match=name.match(/^(repeating_.*)_\$(\d+)_.*$/);
|
||||
if(match){
|
||||
let index=match[2],
|
||||
attrMatcher=new RegExp(`^${name.replace(/_\$\d+_/,'_([-\\da-zA-Z]+)_')}$`,(caseSensitive?'i':'')),
|
||||
createOrderKeys=[],
|
||||
attrs=_.chain(findObjs({type:'attribute', characterid:character.id}))
|
||||
.map((a)=>{
|
||||
return {attr:a,match:a.get('name').match(attrMatcher)};
|
||||
})
|
||||
.filter((o)=>o.match)
|
||||
.each((o)=>createOrderKeys.push(o.match[1]))
|
||||
.reduce((m,o)=>{ m[o.match[1]]=o.attr; return m;},{})
|
||||
.value(),
|
||||
sortOrderKeys = _.chain( ((findObjs({
|
||||
type:'attribute',
|
||||
characterid:character.id,
|
||||
name: `_reporder_${match[1]}`
|
||||
})[0]||{get:_.noop}).get('current') || '' ).split(/\s*,\s*/))
|
||||
.intersection(createOrderKeys)
|
||||
.union(createOrderKeys)
|
||||
.value();
|
||||
if(index<sortOrderKeys.length && _.has(attrs,sortOrderKeys[index])){
|
||||
return attrs[sortOrderKeys[index]];
|
||||
}
|
||||
return;
|
||||
}
|
||||
return findObjs({ type:'attribute', characterid:character.id, name: name}, {caseInsensitive: !caseSensitive})[0];
|
||||
},
|
||||
|
||||
HandleInput = function(msg_orig) {
|
||||
var msg = _.clone(msg_orig),
|
||||
args,attr,amount,chr,token,text='',label, whisper=false,
|
||||
who;
|
||||
|
||||
if (msg.type !== "api") {
|
||||
return;
|
||||
}
|
||||
who=(getObj('player',msg.playerid)||{get:()=>'API'}).get('_displayname');
|
||||
|
||||
if(_.has(msg,'inlinerolls')){
|
||||
msg.content = _.chain(msg.inlinerolls)
|
||||
.reduce(function(m,v,k){
|
||||
m['$[['+k+']]']=v.results.total || 0;
|
||||
return m;
|
||||
},{})
|
||||
.reduce(function(m,v,k){
|
||||
return m.replace(k,v);
|
||||
},msg.content)
|
||||
.value();
|
||||
}
|
||||
|
||||
args = msg.content.split(/\s+/);
|
||||
switch(args[0]) {
|
||||
case '!wammo':
|
||||
whisper = true;
|
||||
/* break; // intentional dropthrough */ /* falls through */
|
||||
|
||||
case '!ammo':
|
||||
if(args.length > 1) {
|
||||
|
||||
switch(args[1]) {
|
||||
case '--help':
|
||||
return showHelp(who,msg.playerid);
|
||||
|
||||
case 'recover': // <character/token_id> <attribute_name>
|
||||
// apply policy to put amounts back in
|
||||
case 'check': // <character/token_id> <attribute_name>
|
||||
// print the amount in the attribute nicely formatted
|
||||
case 'recovery-policy': // [character/token_id] [attribute_name] <percentage>
|
||||
// create the right entry in the state
|
||||
case 'name': // [character/token_id] [attribute_name] <name>
|
||||
// create the right entry in the state
|
||||
|
||||
// configs
|
||||
case 'recovery-updates-maximum':
|
||||
// adjust the maximum to be whatever the current is
|
||||
case 'create-attributes-automatically':
|
||||
// create the requested attribute and start using it.
|
||||
}
|
||||
|
||||
|
||||
chr = getObj('character', args[1]);
|
||||
if( ! chr ) {
|
||||
token = getObj('graphic', args[1]);
|
||||
if(token) {
|
||||
chr = getObj('character', token.get('represents'));
|
||||
}
|
||||
}
|
||||
if(chr) {
|
||||
if(! playerIsGM(msg.playerid) &&
|
||||
! _.contains(chr.get('controlledby').split(','),msg.playerid) &&
|
||||
! _.contains(chr.get('controlledby').split(','),'all')
|
||||
)
|
||||
{
|
||||
sendMessage(
|
||||
'You do not control the specified character: '+chr.id ,
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false))
|
||||
);
|
||||
sendMessage(
|
||||
'<b>'+getObj('player',msg.playerid).get('_displayname')+'</b> attempted to adjust attribute <b>'+args[2]+'</b> on character <b>'+chr.get('name')+'</b>.',
|
||||
'gm'
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
attr = attrLookup(chr,args[2],false);
|
||||
}
|
||||
amount=parseInt(args[3],10);
|
||||
label=_.rest(args,4).join(' ');
|
||||
if(attr) {
|
||||
adjustAmmo(
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false)),
|
||||
attr,amount,label,msg.playerid
|
||||
);
|
||||
} else {
|
||||
if(chr) {
|
||||
sendMessage(
|
||||
'Attribute ['+args[2]+'] was not found. Please verify that you have the right name.',
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false))
|
||||
);
|
||||
} else {
|
||||
sendMessage(
|
||||
( token ? 'Token id ['+args[1]+'] does not represent a character. ' : 'Character/Token id ['+args[1]+'] is not valid. ' ) +
|
||||
'Please be sure you are specifying it correctly, either with '+ch('@')+ch('{')+'selected|token_id'+ch('}')+
|
||||
' or '+ch('@')+ch('{')+'selected|character_id'+ch('}')+'.',
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false))
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
showHelp(who,msg.playerid);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
},
|
||||
checkInstall = function() {
|
||||
log('-=> Ammo v'+version+' <=- ['+(new Date(lastUpdate*1000))+']');
|
||||
if( ! _.has(state,'Ammo') || state.Ammo.version !== schemaVersion) {
|
||||
log(' > Updating Schema to v'+schemaVersion+' <');
|
||||
state.Ammo = {
|
||||
version: schemaVersion,
|
||||
config: {
|
||||
},
|
||||
policies: {
|
||||
global: {
|
||||
recoveryUpdatesMaximum: false
|
||||
},
|
||||
byAttribute: {
|
||||
},
|
||||
byCharacter: {
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
RegisterEventHandlers = function() {
|
||||
on('chat:message', HandleInput);
|
||||
};
|
||||
|
||||
return {
|
||||
CheckInstall: checkInstall,
|
||||
RegisterEventHandlers: RegisterEventHandlers
|
||||
};
|
||||
}());
|
||||
|
||||
on("ready",function(){
|
||||
'use strict';
|
||||
|
||||
Ammo.CheckInstall();
|
||||
Ammo.RegisterEventHandlers();
|
||||
var Ammo = Ammo || (function() {
|
||||
'use strict';
|
||||
|
||||
var version = '0.3.7',
|
||||
lastUpdate = 1490362793,
|
||||
schemaVersion = 0.1,
|
||||
|
||||
ch = function (c) {
|
||||
var entities = {
|
||||
'<' : 'lt',
|
||||
'>' : 'gt',
|
||||
"'" : '#39',
|
||||
'@' : '#64',
|
||||
'{' : '#123',
|
||||
'|' : '#124',
|
||||
'}' : '#125',
|
||||
'[' : '#91',
|
||||
']' : '#93',
|
||||
'"' : 'quot',
|
||||
'-' : 'mdash',
|
||||
' ' : 'nbsp'
|
||||
};
|
||||
|
||||
if(_.has(entities,c) ){
|
||||
return ('&'+entities[c]+';');
|
||||
}
|
||||
return '';
|
||||
},
|
||||
sendMessage = function(message, who) {
|
||||
sendChat('Ammo', (who ? ('/w '+who+' ') : '') + '<div style="padding:1px 3px;border: 1px solid #8B4513;background: #eeffee; color: #8B4513; font-size: 80%;">'+
|
||||
message+
|
||||
'</div>'
|
||||
);
|
||||
},
|
||||
|
||||
adjustAmmo = function (who,attr,amount,label,playerid) {
|
||||
var val = parseInt(attr.get('current'),10)||0,
|
||||
max = parseInt(attr.get('max'),10)||10000,
|
||||
adj = (val+amount),
|
||||
chr = getObj('character',attr.get('characterid')),
|
||||
valid = true;
|
||||
label=label||'ammo';
|
||||
|
||||
if(adj < 0 ) {
|
||||
sendMessage(
|
||||
'<b>'+chr.get('name') + '</b> does not have enough '+label+'. Needs '+Math.abs(amount)+', but only has '+
|
||||
'<span style="color: #ff0000;">'+val+'</span>.'+
|
||||
'<span style="font-weight:normal;color:#708090;>'+ch('[')+'Attribute: '+attr.get('name')+ch(']')+'</span>',
|
||||
who
|
||||
);
|
||||
valid = false;
|
||||
} else if( adj > max) {
|
||||
sendMessage(
|
||||
'<b>'+chr.get('name') + '</b> does not have enough storage space for '+label+'. Needs '+adj+', but only has '+
|
||||
'<span style="color: #ff0000;">'+max+'</span>.'+
|
||||
'<span style="font-weight:normal;color:#708090;>'+ch('[')+'Attribute: '+attr.get('name')+ch(']')+'</span>',
|
||||
who
|
||||
);
|
||||
valid = false;
|
||||
}
|
||||
|
||||
if( playerIsGM(playerid) || valid ) {
|
||||
attr.set({current: adj});
|
||||
sendMessage(
|
||||
'<b>'+chr.get('name') + '</b> '+( (adj<val) ? 'uses' : 'gains' )+' '+Math.abs(amount)+' '+label+' and has '+adj+' remaining.',
|
||||
who
|
||||
);
|
||||
if(!valid) {
|
||||
sendMessage(
|
||||
'Ignoring warnings and applying adjustment anyway. Was: '+val+'/'+max+' Now: '+adj+'/'+max,
|
||||
who
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
showHelp = function(who,playerid) {
|
||||
|
||||
sendChat('',
|
||||
'/w "'+who+'" '+
|
||||
'<div style="border: 1px solid black; background-color: white; padding: 3px 3px;">'+
|
||||
'<div style="font-weight: bold; border-bottom: 1px solid black;font-size: 130%;">'+
|
||||
'Ammo v'+version+
|
||||
'</div>'+
|
||||
'<div style="padding-left:10px;margin-bottom:3px;">'+
|
||||
'<p>Ammo provides inventory management for ammunition stored in a character '+
|
||||
'attribute. If the adjustment would change the attribute to be below 0 or above '+
|
||||
'it'+ch("'")+'s maximum value, a warning will be issued and the attribute will not be'+
|
||||
'changed.</p>'+
|
||||
|
||||
( (playerIsGM(playerid)) ? '<p><b>Note:</b> As the GM, bounds will not be '+
|
||||
'enforced for you. You will be whispered the warnings, but the operation '+
|
||||
'will succeed. You will also be told the previous and current state in case '+
|
||||
'you want to revert the change.' : '')+
|
||||
|
||||
'</div>'+
|
||||
'<b>Commands</b>'+
|
||||
'<div style="padding-left:10px;">'+
|
||||
'<b><span style="font-family: serif;">!ammo '+ch('<')+'id'+ch('>')+' '+ch('<')+'attribute'+ch('>')+' '+ch('<')+'amount'+ch('>')+' '+ch('[')+'resource name'+ch(']')+'</span></b>'+
|
||||
'<div style="padding-left: 10px;padding-right:20px">'+
|
||||
'This command requires 3 parameters:'+
|
||||
'<ul>'+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">id</span></b> -- The id of the character which has the attribute. You can pass this as '+ch('@')+ch('{')+'selected|token_id'+ch('}')+' and the character id will be pulled from represents field of the token.'+
|
||||
'</li> '+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">attribute</span></b> -- The name of the attribute representing ammunition.'+
|
||||
'</li> '+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">amount</span></b> -- The change to apply to the current quantity of ammo. Use negative numbers to decrease the amount, and positive numbers to increase it. You can use inline rolls to determine the number.'+
|
||||
'</li> '+
|
||||
'<li style="border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;">'+
|
||||
'<b><span style="font-family: serif;">resource name</span></b> -- Anything you put after the amount to adjust by will be used as the resource name (default: "ammo").'+
|
||||
'</li> '+
|
||||
'</ul>'+
|
||||
'</div>'+
|
||||
'<b><span style="font-family: serif;">!wammo '+ch('<')+'id'+ch('>')+' '+ch('<')+'attribute'+ch('>')+' '+ch('<')+'amount'+ch('>')+' '+ch('[')+'resource name'+ch(']')+'</span></b>'+
|
||||
'<div style="padding-left: 10px;padding-right:20px">'+
|
||||
'This command is identical to !ammo but will whisper all output.'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'</div>'
|
||||
);
|
||||
},
|
||||
|
||||
attrLookup = function(character,name,caseSensitive){
|
||||
let match=name.match(/^(repeating_.*)_\$(\d+)_.*$/);
|
||||
if(match){
|
||||
let index=match[2],
|
||||
attrMatcher=new RegExp(`^${name.replace(/_\$\d+_/,'_([-\\da-zA-Z]+)_')}$`,(caseSensitive?'i':'')),
|
||||
createOrderKeys=[],
|
||||
attrs=_.chain(findObjs({type:'attribute', characterid:character.id}))
|
||||
.map((a)=>{
|
||||
return {attr:a,match:a.get('name').match(attrMatcher)};
|
||||
})
|
||||
.filter((o)=>o.match)
|
||||
.each((o)=>createOrderKeys.push(o.match[1]))
|
||||
.reduce((m,o)=>{ m[o.match[1]]=o.attr; return m;},{})
|
||||
.value(),
|
||||
sortOrderKeys = _.chain( ((findObjs({
|
||||
type:'attribute',
|
||||
characterid:character.id,
|
||||
name: `_reporder_${match[1]}`
|
||||
})[0]||{get:_.noop}).get('current') || '' ).split(/\s*,\s*/))
|
||||
.intersection(createOrderKeys)
|
||||
.union(createOrderKeys)
|
||||
.value();
|
||||
if(index<sortOrderKeys.length && _.has(attrs,sortOrderKeys[index])){
|
||||
return attrs[sortOrderKeys[index]];
|
||||
}
|
||||
return;
|
||||
}
|
||||
return findObjs({ type:'attribute', characterid:character.id, name: name}, {caseInsensitive: !caseSensitive})[0];
|
||||
},
|
||||
|
||||
HandleInput = function(msg_orig) {
|
||||
var msg = _.clone(msg_orig),
|
||||
args,attr,amount,chr,token,text='',label, whisper=false,
|
||||
who;
|
||||
|
||||
if (msg.type !== "api") {
|
||||
return;
|
||||
}
|
||||
who=(getObj('player',msg.playerid)||{get:()=>'API'}).get('_displayname');
|
||||
|
||||
if(_.has(msg,'inlinerolls')){
|
||||
msg.content = _.chain(msg.inlinerolls)
|
||||
.reduce(function(m,v,k){
|
||||
m['$[['+k+']]']=v.results.total || 0;
|
||||
return m;
|
||||
},{})
|
||||
.reduce(function(m,v,k){
|
||||
return m.replace(k,v);
|
||||
},msg.content)
|
||||
.value();
|
||||
}
|
||||
|
||||
args = msg.content.split(/\s+/);
|
||||
switch(args[0]) {
|
||||
case '!wammo':
|
||||
whisper = true;
|
||||
/* break; // intentional dropthrough */ /* falls through */
|
||||
|
||||
case '!ammo':
|
||||
if(args.length > 1) {
|
||||
|
||||
switch(args[1]) {
|
||||
case '--help':
|
||||
return showHelp(who,msg.playerid);
|
||||
|
||||
case 'recover': // <character/token_id> <attribute_name>
|
||||
// apply policy to put amounts back in
|
||||
case 'check': // <character/token_id> <attribute_name>
|
||||
// print the amount in the attribute nicely formatted
|
||||
case 'recovery-policy': // [character/token_id] [attribute_name] <percentage>
|
||||
// create the right entry in the state
|
||||
case 'name': // [character/token_id] [attribute_name] <name>
|
||||
// create the right entry in the state
|
||||
|
||||
// configs
|
||||
case 'recovery-updates-maximum':
|
||||
// adjust the maximum to be whatever the current is
|
||||
case 'create-attributes-automatically':
|
||||
// create the requested attribute and start using it.
|
||||
}
|
||||
|
||||
|
||||
chr = getObj('character', args[1]);
|
||||
if( ! chr ) {
|
||||
token = getObj('graphic', args[1]);
|
||||
if(token) {
|
||||
chr = getObj('character', token.get('represents'));
|
||||
}
|
||||
}
|
||||
if(chr) {
|
||||
if(! playerIsGM(msg.playerid) &&
|
||||
! _.contains(chr.get('controlledby').split(','),msg.playerid) &&
|
||||
! _.contains(chr.get('controlledby').split(','),'all')
|
||||
)
|
||||
{
|
||||
sendMessage(
|
||||
'You do not control the specified character: '+chr.id ,
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false))
|
||||
);
|
||||
sendMessage(
|
||||
'<b>'+getObj('player',msg.playerid).get('_displayname')+'</b> attempted to adjust attribute <b>'+args[2]+'</b> on character <b>'+chr.get('name')+'</b>.',
|
||||
'gm'
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
attr = attrLookup(chr,args[2],false);
|
||||
}
|
||||
amount=parseInt(args[3],10);
|
||||
label=_.rest(args,4).join(' ');
|
||||
if(attr) {
|
||||
adjustAmmo(
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false)),
|
||||
attr,amount,label,msg.playerid
|
||||
);
|
||||
} else {
|
||||
if(chr) {
|
||||
sendMessage(
|
||||
'Attribute ['+args[2]+'] was not found. Please verify that you have the right name.',
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false))
|
||||
);
|
||||
} else {
|
||||
sendMessage(
|
||||
( token ? 'Token id ['+args[1]+'] does not represent a character. ' : 'Character/Token id ['+args[1]+'] is not valid. ' ) +
|
||||
'Please be sure you are specifying it correctly, either with '+ch('@')+ch('{')+'selected|token_id'+ch('}')+
|
||||
' or '+ch('@')+ch('{')+'selected|character_id'+ch('}')+'.',
|
||||
(playerIsGM(msg.playerid) ? 'gm' : (whisper ? who :false))
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
showHelp(who,msg.playerid);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
},
|
||||
checkInstall = function() {
|
||||
log('-=> Ammo v'+version+' <=- ['+(new Date(lastUpdate*1000))+']');
|
||||
if( ! _.has(state,'Ammo') || state.Ammo.version !== schemaVersion) {
|
||||
log(' > Updating Schema to v'+schemaVersion+' <');
|
||||
state.Ammo = {
|
||||
version: schemaVersion,
|
||||
config: {
|
||||
},
|
||||
policies: {
|
||||
global: {
|
||||
recoveryUpdatesMaximum: false
|
||||
},
|
||||
byAttribute: {
|
||||
},
|
||||
byCharacter: {
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
},
|
||||
|
||||
RegisterEventHandlers = function() {
|
||||
on('chat:message', HandleInput);
|
||||
};
|
||||
|
||||
return {
|
||||
CheckInstall: checkInstall,
|
||||
RegisterEventHandlers: RegisterEventHandlers
|
||||
};
|
||||
}());
|
||||
|
||||
on("ready",function(){
|
||||
'use strict';
|
||||
|
||||
Ammo.CheckInstall();
|
||||
Ammo.RegisterEventHandlers();
|
||||
});
|
||||
@@ -1,75 +1,75 @@
|
||||
/**
|
||||
* This script rolls a d100 and computes and outputs the success results based
|
||||
* originally on Dark Heresy Second Edition RPG criteria and now Black Crusade RPG criteria.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !roll40k [tokenName], [attributeValue], [unnaturalAttributeValue], [ModifierValue]
|
||||
*
|
||||
* This script was written by Jack D on Roll20 Forums at https://app.roll20.net/forum/post/4607859/help-dark-heresy-2nd-edition-api
|
||||
* and later modified by Pixizz for Black Crusade.
|
||||
**/
|
||||
|
||||
//Rolls a d100 and calculates the success or fail results to the chat window.
|
||||
var rollcharacteristic40k = rollcharacteristic40k || (function(){
|
||||
|
||||
var rollResultForRoll40k = function (token, attribute, unAttribute, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var modTarget = parseInt(attribute) + parseInt(modifier);
|
||||
var output1, output2, degOfSuc;
|
||||
//Form output message based on result
|
||||
if (roll === 1) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' rolled a 1 and automatically succeeds by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' rolled a 100 and automatically fails by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll <= modTarget) {
|
||||
degOfSuc = (Math.floor(modTarget / 10) - Math.floor(roll / 10)) + 1 + parseInt(unAttribute);
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' succeeds by <B>' + degOfSuc + ' degree(s)</B>.</span>';
|
||||
}
|
||||
else {
|
||||
degOfSuc = (Math.floor(roll / 10) - Math.floor(modTarget / 10)) + 1;
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' fails by <B>' + degOfSuc + ' degree(s)</B></span>.';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
},
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.results.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!rollcharacteristic40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 4) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify four comma-separated ' +
|
||||
'parameters for the !rollcharacteristic40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRoll40k(paramArray[0].trim(), paramArray[1].trim(), paramArray[2].trim(), paramArray[3].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
/**
|
||||
* This script rolls a d100 and computes and outputs the success results based
|
||||
* originally on Dark Heresy Second Edition RPG criteria and now Black Crusade RPG criteria.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !roll40k [tokenName], [attributeValue], [unnaturalAttributeValue], [ModifierValue]
|
||||
*
|
||||
* This script was written by Jack D on Roll20 Forums at https://app.roll20.net/forum/post/4607859/help-dark-heresy-2nd-edition-api
|
||||
* and later modified by Pixizz for Black Crusade.
|
||||
**/
|
||||
|
||||
//Rolls a d100 and calculates the success or fail results to the chat window.
|
||||
var rollcharacteristic40k = rollcharacteristic40k || (function(){
|
||||
|
||||
var rollResultForRoll40k = function (token, attribute, unAttribute, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var modTarget = parseInt(attribute) + parseInt(modifier);
|
||||
var output1, output2, degOfSuc;
|
||||
//Form output message based on result
|
||||
if (roll === 1) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' rolled a 1 and automatically succeeds by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' rolled a 100 and automatically fails by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll <= modTarget) {
|
||||
degOfSuc = (Math.floor(modTarget / 10) - Math.floor(roll / 10)) + 1 + parseInt(unAttribute);
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' succeeds by <B>' + degOfSuc + ' degree(s)</B>.</span>';
|
||||
}
|
||||
else {
|
||||
degOfSuc = (Math.floor(roll / 10) - Math.floor(modTarget / 10)) + 1;
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' fails by <B>' + degOfSuc + ' degree(s)</B></span>.';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
},
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.results.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!rollcharacteristic40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 4) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify four comma-separated ' +
|
||||
'parameters for the !rollcharacteristic40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRoll40k(paramArray[0].trim(), paramArray[1].trim(), paramArray[2].trim(), paramArray[3].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
}())
|
||||
@@ -1,101 +1,101 @@
|
||||
/**
|
||||
* This script rolls a d100 and computes and outputs the success results based
|
||||
* originally on Dark Heresy Second Edition RPG criteria. It is intended to be used
|
||||
* for skill checks.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !skill40k [tokenName], [attributeValue], [unnaturalAttributeValue] [skillBonus1], [skillBonus2], [skillBonus3], [skillBonus4], [ModifierValue]
|
||||
*
|
||||
* It is expected that the following bonus are included based on the skill level of the character:
|
||||
* skillBonus1 = 20 or 0, if known or untrained
|
||||
* skillBonus2 = 10 or 0, if trained or less than trained
|
||||
* skillBonus3 = 10 or 0, if experienced or less than experienced
|
||||
* skillBonus4 = 10 or 0, if veteran or less than veteran
|
||||
*
|
||||
* Example:
|
||||
* /em @{character_name} makes a known Acrobatics skill check!
|
||||
* !skill40k @{character_name},@{Agility},@{UnAg},20,0,0,0,?{Total Modifiers|0}
|
||||
*
|
||||
* This script was written by Jack D on Roll20 Forums at https://app.roll20.net/forum/post/4607859/help-dark-heresy-2nd-edition-api and
|
||||
* later modified by Pixizz for use in Black Crusade.
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
//Rolls a d100 and calculates the success or fail results to the chat window.
|
||||
var rollResultForSkill40k = function (token, attribute, unAttribute, skillBn1, skillBn2, skillBn3, skillBn4, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var skillBonus = parseInt(skillBn1) + parseInt(skillBn2) + parseInt(skillBn3) + parseInt(skillBn4) - 20;
|
||||
var modTarget = parseInt(attribute) + skillBonus + parseInt(modifier);
|
||||
var output1 = token,
|
||||
output2, degOfSuc;
|
||||
|
||||
|
||||
//Create output which includes skill level wording
|
||||
switch (skillBonus) {
|
||||
case 0:
|
||||
output1 += ' is known (0)';
|
||||
break;
|
||||
case 10:
|
||||
output1 += ' is trained (+10)';
|
||||
break;
|
||||
case 20:
|
||||
output1 += ' is experienced (+20)';
|
||||
break;
|
||||
case 30:
|
||||
output1 += ' is veteran (+30)';
|
||||
break;
|
||||
default:
|
||||
output1 += ' is untrained (-20)';
|
||||
}
|
||||
output1 += ' granting a modified target of <B>' + modTarget + '</B>. They ' +
|
||||
'rolled a <B>' + roll + '</B>.';
|
||||
|
||||
|
||||
//Form output message based on result
|
||||
if (roll === 1) {
|
||||
output2 = '<span style="color:green">' + token + ' rolled a 1 and automatically succeeds by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output2 = '<span style="color:red">' + token + ' rolled a 100 and automatically fails by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll <= modTarget) {
|
||||
degOfSuc = (Math.floor(modTarget / 10) - Math.floor(roll / 10)) + 1 + parseInt(unAttribute);
|
||||
output2 = '<span style="color:green">' + token + ' succeeds by <B>' + degOfSuc + ' degree(s)</B>.</span>';
|
||||
}
|
||||
else {
|
||||
degOfSuc = (Math.floor(roll / 10) - Math.floor(modTarget / 10)) + 1;
|
||||
output2 = '<span style="color:red">' + token + ' fails by <B>' + degOfSuc + ' degree(s)</B></span>.';
|
||||
}
|
||||
|
||||
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
};
|
||||
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!skill40k ';
|
||||
|
||||
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
var paramArray = msg.content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 8) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' must specify eight comma-separated ' +
|
||||
'parameters for the !skill40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForSkill40k(paramArray[0].trim(),
|
||||
paramArray[1].trim(),
|
||||
paramArray[2].trim(),
|
||||
paramArray[3].trim(),
|
||||
paramArray[4].trim(),
|
||||
paramArray[5].trim(),
|
||||
paramArray[6].trim(),
|
||||
paramArray[7].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* This script rolls a d100 and computes and outputs the success results based
|
||||
* originally on Dark Heresy Second Edition RPG criteria. It is intended to be used
|
||||
* for skill checks.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !skill40k [tokenName], [attributeValue], [unnaturalAttributeValue] [skillBonus1], [skillBonus2], [skillBonus3], [skillBonus4], [ModifierValue]
|
||||
*
|
||||
* It is expected that the following bonus are included based on the skill level of the character:
|
||||
* skillBonus1 = 20 or 0, if known or untrained
|
||||
* skillBonus2 = 10 or 0, if trained or less than trained
|
||||
* skillBonus3 = 10 or 0, if experienced or less than experienced
|
||||
* skillBonus4 = 10 or 0, if veteran or less than veteran
|
||||
*
|
||||
* Example:
|
||||
* /em @{character_name} makes a known Acrobatics skill check!
|
||||
* !skill40k @{character_name},@{Agility},@{UnAg},20,0,0,0,?{Total Modifiers|0}
|
||||
*
|
||||
* This script was written by Jack D on Roll20 Forums at https://app.roll20.net/forum/post/4607859/help-dark-heresy-2nd-edition-api and
|
||||
* later modified by Pixizz for use in Black Crusade.
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
//Rolls a d100 and calculates the success or fail results to the chat window.
|
||||
var rollResultForSkill40k = function (token, attribute, unAttribute, skillBn1, skillBn2, skillBn3, skillBn4, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var skillBonus = parseInt(skillBn1) + parseInt(skillBn2) + parseInt(skillBn3) + parseInt(skillBn4) - 20;
|
||||
var modTarget = parseInt(attribute) + skillBonus + parseInt(modifier);
|
||||
var output1 = token,
|
||||
output2, degOfSuc;
|
||||
|
||||
|
||||
//Create output which includes skill level wording
|
||||
switch (skillBonus) {
|
||||
case 0:
|
||||
output1 += ' is known (0)';
|
||||
break;
|
||||
case 10:
|
||||
output1 += ' is trained (+10)';
|
||||
break;
|
||||
case 20:
|
||||
output1 += ' is experienced (+20)';
|
||||
break;
|
||||
case 30:
|
||||
output1 += ' is veteran (+30)';
|
||||
break;
|
||||
default:
|
||||
output1 += ' is untrained (-20)';
|
||||
}
|
||||
output1 += ' granting a modified target of <B>' + modTarget + '</B>. They ' +
|
||||
'rolled a <B>' + roll + '</B>.';
|
||||
|
||||
|
||||
//Form output message based on result
|
||||
if (roll === 1) {
|
||||
output2 = '<span style="color:green">' + token + ' rolled a 1 and automatically succeeds by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output2 = '<span style="color:red">' + token + ' rolled a 100 and automatically fails by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll <= modTarget) {
|
||||
degOfSuc = (Math.floor(modTarget / 10) - Math.floor(roll / 10)) + 1 + parseInt(unAttribute);
|
||||
output2 = '<span style="color:green">' + token + ' succeeds by <B>' + degOfSuc + ' degree(s)</B>.</span>';
|
||||
}
|
||||
else {
|
||||
degOfSuc = (Math.floor(roll / 10) - Math.floor(modTarget / 10)) + 1;
|
||||
output2 = '<span style="color:red">' + token + ' fails by <B>' + degOfSuc + ' degree(s)</B></span>.';
|
||||
}
|
||||
|
||||
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
};
|
||||
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!skill40k ';
|
||||
|
||||
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
var paramArray = msg.content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 8) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' must specify eight comma-separated ' +
|
||||
'parameters for the !skill40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForSkill40k(paramArray[0].trim(),
|
||||
paramArray[1].trim(),
|
||||
paramArray[2].trim(),
|
||||
paramArray[3].trim(),
|
||||
paramArray[4].trim(),
|
||||
paramArray[5].trim(),
|
||||
paramArray[6].trim(),
|
||||
paramArray[7].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1,113 +1,113 @@
|
||||
/**
|
||||
* This script rolls a d100 and compares it to the Black Crusade Perils of the Warp table.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !rollperiltable40k [tokenName]
|
||||
*
|
||||
* This script is based on Jack D works, modified by Pixizz.
|
||||
**/
|
||||
|
||||
//Rolls a d100, add the modifier and determine the peril based on the Black Crusade chart.
|
||||
|
||||
var rollperiltable40k = rollperiltable40k || (function(){
|
||||
|
||||
var rollResultForRollPsyTable40k = function (token) {
|
||||
var roll = randomInteger(100);
|
||||
var output1 = token + ' rolled a <B>' + roll + ' </B>on the Perils of the Warp Table';
|
||||
var output2;
|
||||
//Form output message based on roll
|
||||
if (roll <= 5) {
|
||||
output2 = '<span style="color:red"><B>The Gibbering:</B> The psyker screams in pain as uncontrolled warp energies surge through his unprepared mind. He must make a Challenging (+0) Willpower Test or be stunned for 1d5 rounds</span>';
|
||||
}
|
||||
else if (roll >= 6 && roll <= 9) {
|
||||
output2 = '<span style="color:red"><B>Warp Burn:</B> A violent burst of energy from the warp smashes into the psyker’s mind, sending him reeling. He suffers 2d5 wounds, ignoring Toughness Bonus and Armour, and is stunned for 1d5 Rounds</span>';
|
||||
}
|
||||
else if (roll >= 10 && roll <= 13) {
|
||||
output2 = '<span style="color:red"><B>Psychic Concussion:</B> With a crack of energy, the psyker is knocked unconscious for 1d5 rounds, and everyone within 3d10 metres must make a Routine (+10) Willpower Test or be Stunned for one round</span>';
|
||||
}
|
||||
else if (roll >= 14 && roll <= 18) {
|
||||
output2 = '<span style="color:red"><B>Psy Blast:</B> There is an explosion of power and the psyker is thrown 3d10 metres into the air, falling to the ground moments later (see page 257 for Falling Damage)</span>';
|
||||
}
|
||||
else if (roll >= 19 && roll <= 24) {
|
||||
output2 = '<span style="color:red"><B>Soul Sear:</B> Warp power courses through the psyker’s body, scorching his soul. The psyker cannot use any powers for the next hour and gains 2d5 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 25 && roll <= 30) {
|
||||
output2 = '<span style="color:red"><B>Locked In:</B> The power cages the psyker’s mind in an ethereal prison, tormented by visions of the warp. The psyker falls to the ground in a catatonic state. Each round thereafter, he must spend a full action to make a Diffi cult (–10) Willpower Test. On a success, his mind is freed and restored to his body, haunted by his experiences but otherwise unharmed</span>';
|
||||
}
|
||||
else if (roll >= 31 && roll <= 38) {
|
||||
output2 = '<span style="color:red"><B>Chronological Incontinence:</B> Time warps around the psyker. He winks out of existence and reappears in 1d10 rounds (for one minute in narrative time) in the exact location. He suffers one point of permanent Toughness and Intelligence damage as his body and mind rebel against the experience, and gains 1d5 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 39 && roll <= 46) {
|
||||
output2 = '<span style="color:red"><B>Psychic Mirror:</B> The psyker’s power is turned back on him. Resolve the power’s effects, but the power targets the psyker instead. If the power is beneficial, it deals 1d10+5 Energy Damage (ignoring armour) to the psyker instead of its normal effect</span>';
|
||||
}
|
||||
else if (roll >= 47 && roll <= 55) {
|
||||
output2 = '<span style="color:red"><B>Warp Whispers:</B> The voices of daemons fill the air within 4d10 metres of the psyker, whispering terrible secrets and shocking truths. Everyone in the area (including the psyker ) must make a Hard (–20) Willpower Test or suffer 1d5 Corruption Points and an equal amount of Willpower Damage. In addition, whether or not the psyker passes the Willpower Test, he still suffers an additional 1d5+5 Willpower Damage</span>';
|
||||
}
|
||||
else if (roll >= 56 && roll <= 58) {
|
||||
output2 = '<span style="color:red"><B>Vice Versa:</B> The psyker’s mind is thrown out of his body and into another nearby creature or person. The psyker and a random being (note, this cannot be a daemon, untouchable or other “soulless” creature) within 50 metres swap consciousness for 1d10 rounds. This may be allies or enemies. Each creature retains its Weapon Skill, Ballistic Skill, Intelligence, Perception, Willpower and Fellowship during the swap, but all other Characteristics are of the new host body. If either body is slain, the effect ends immediately and both parties return to their original bodies. Both suffer 1d5 Intelligence Damage from the experience. If there are no creatures within range, the psyker becomes catatonic for 1d5 rounds while his mind wanders the warp. This journey causes 1d10 Willpower Damage, 1d10 Intelligence Damage and 1d10 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 59 && roll <= 67) {
|
||||
output2 = '<span style="color:red"><B>Dark Summoning:</B> Khorne’s wrath swells at the arrogance of the psyker, and he sends a Bloodletter to deal with the fool. (see Chapter XI: Adversaries) The Bloodletter rips into existence within 3d10 metres of the psyker, for a number of rounds equal to 1d5 plus the daemon’s Toughness Bonus. The psyker’s turn immediately ends, and the Daemon may take its turn immediately. It detests the psyker and focuses all of its attacks upon the fool that unwittingly summoned it. It will not attack anyone else, even if others attack it</span>';
|
||||
}
|
||||
else if (roll >= 68 && roll <= 72) {
|
||||
output2 = '<span style="color:red"><B>Rending the Veil:</B> The air vibrates with images of cackling daemons and the kaleidoscopic taint of the warp is rendered visible. All sentient creatures (any creature with an Intelligence characteristic) within 1d100 metres must test against Fear (2). The psyker must Test against Fear (4) instead. This effect lasts for 1d5 rounds</span>';
|
||||
}
|
||||
else if (roll >= 73 && roll <= 78) {
|
||||
output2 = '<span style="color:red"><B>Blood Rain:</B> A psychic storm erupts, covering an area of 5d10 metres in which everyone must pass a Challenging (+0) Strength Test or be knocked to the ground. In addition to howling winds and the skies raining blood, any psychic powers used in the area automatically invoke Perils of the Warp for 1d5 rounds, in addition to any Psychic Phenomena those powers cause. The psyker gains 1d5+1 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 79 && roll <= 82) {
|
||||
output2 = '<span style="color:red"><B>Cataclysmic Blast:</B> The psyker’s power overloads, arcing out in great bolts of warp energy. Anyone within 1d10 metres (including the psyker) takes 1d10+8 Energy Damage with a Pen of 5. The psyker may not Dodge this, or stop the attack with a Field Save. In addition, all of the psyker’s clothing and gear is destroyed, leaving him naked and smoking on the ground. The psyker may use no further powers for 1d5 hours after the event</span>';
|
||||
}
|
||||
else if (roll >= 83 && roll <= 86) {
|
||||
output2 = '<span style="color:red"><B>Mass Possession:</B> Daemons ravage the mind of every living thing within 1d100 metres. Every character in the area must resist a possession attack (see the Possession Trait in Chapter IV: Talents and Traits; the attacker is a random Lesser Daemon). This possession will last for no more than 2d10 rounds, after which the daemons are cast back into the warp</span>';
|
||||
}
|
||||
else if (roll >= 87 && roll <= 90) {
|
||||
output2 = '<span style="color:red"><B>Reality Quake:</B> Reality buckles around the psyker, and an area radiating out 3d10 metres from him is sundered: solid objects alternately rot, burn, and freeze, and everyone and everything in the area takes 2d10 Rending Damage, ignoring armour (and unable to be dodged). Warded objects, daemons and untouchables halve the Damage rolled</span>';
|
||||
}
|
||||
else if (roll >= 91 && roll <= 99) {
|
||||
output2 = '<span style="color:red"><B>Grand Possession:</B> A grand and terrible warp entity takes interest in the psyker’s soul, descending from the warp to seize the mortal’s body for its own purposes. A Greater Daemon chosen by the GM attempts to possess the psyker (see the Possession Trait in Chapter IV: Talents and Traits). Even if the daemon fails, the psyker still suffers 2d10 Toughness Damage, and will forever add +10 to all rolls on the Psychic Phenomena and Perils of the Warp tables as his body now serves as a conduit to the power of the warp. If the character dies while possessed, the Greater Daemon manifests in the real world for a number of days equal to its Toughness Bonus or until it is destroyed</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output2 = '<span style="color:red"><B>Annihilation:</B> The psyker is immediately and irrevocably destroyed, burned to nothing by the screaming fi res of the Immaterium or dragged into the deepest maelstrom of the warp. The psyker may not spend Infamy to recover from this death, he is irrevocably destroyed. There is a chance that a daemonic entity of some sort appears in the psyker’s place— the type of daemon that appears is determined by the GM, based on how powerful the psyker was—more powerful psykers draw more powerful daemons. The percentage chance that the daemon appears is equal to the psyker’s Willpower characteristic (roll a d100, if the result is equal to or under the characteristic, the daemon appears)</span>';
|
||||
}
|
||||
else {
|
||||
output2 = '<span style="color:red"><B>Unexpected value</B></span>';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
};
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.rolls.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!rollperiltable40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 1) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify only the token ' +
|
||||
'parameter for the !rollperiltable40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRollPsyTable40k(paramArray[0].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
/**
|
||||
* This script rolls a d100 and compares it to the Black Crusade Perils of the Warp table.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !rollperiltable40k [tokenName]
|
||||
*
|
||||
* This script is based on Jack D works, modified by Pixizz.
|
||||
**/
|
||||
|
||||
//Rolls a d100, add the modifier and determine the peril based on the Black Crusade chart.
|
||||
|
||||
var rollperiltable40k = rollperiltable40k || (function(){
|
||||
|
||||
var rollResultForRollPsyTable40k = function (token) {
|
||||
var roll = randomInteger(100);
|
||||
var output1 = token + ' rolled a <B>' + roll + ' </B>on the Perils of the Warp Table';
|
||||
var output2;
|
||||
//Form output message based on roll
|
||||
if (roll <= 5) {
|
||||
output2 = '<span style="color:red"><B>The Gibbering:</B> The psyker screams in pain as uncontrolled warp energies surge through his unprepared mind. He must make a Challenging (+0) Willpower Test or be stunned for 1d5 rounds</span>';
|
||||
}
|
||||
else if (roll >= 6 && roll <= 9) {
|
||||
output2 = '<span style="color:red"><B>Warp Burn:</B> A violent burst of energy from the warp smashes into the psyker’s mind, sending him reeling. He suffers 2d5 wounds, ignoring Toughness Bonus and Armour, and is stunned for 1d5 Rounds</span>';
|
||||
}
|
||||
else if (roll >= 10 && roll <= 13) {
|
||||
output2 = '<span style="color:red"><B>Psychic Concussion:</B> With a crack of energy, the psyker is knocked unconscious for 1d5 rounds, and everyone within 3d10 metres must make a Routine (+10) Willpower Test or be Stunned for one round</span>';
|
||||
}
|
||||
else if (roll >= 14 && roll <= 18) {
|
||||
output2 = '<span style="color:red"><B>Psy Blast:</B> There is an explosion of power and the psyker is thrown 3d10 metres into the air, falling to the ground moments later (see page 257 for Falling Damage)</span>';
|
||||
}
|
||||
else if (roll >= 19 && roll <= 24) {
|
||||
output2 = '<span style="color:red"><B>Soul Sear:</B> Warp power courses through the psyker’s body, scorching his soul. The psyker cannot use any powers for the next hour and gains 2d5 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 25 && roll <= 30) {
|
||||
output2 = '<span style="color:red"><B>Locked In:</B> The power cages the psyker’s mind in an ethereal prison, tormented by visions of the warp. The psyker falls to the ground in a catatonic state. Each round thereafter, he must spend a full action to make a Diffi cult (–10) Willpower Test. On a success, his mind is freed and restored to his body, haunted by his experiences but otherwise unharmed</span>';
|
||||
}
|
||||
else if (roll >= 31 && roll <= 38) {
|
||||
output2 = '<span style="color:red"><B>Chronological Incontinence:</B> Time warps around the psyker. He winks out of existence and reappears in 1d10 rounds (for one minute in narrative time) in the exact location. He suffers one point of permanent Toughness and Intelligence damage as his body and mind rebel against the experience, and gains 1d5 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 39 && roll <= 46) {
|
||||
output2 = '<span style="color:red"><B>Psychic Mirror:</B> The psyker’s power is turned back on him. Resolve the power’s effects, but the power targets the psyker instead. If the power is beneficial, it deals 1d10+5 Energy Damage (ignoring armour) to the psyker instead of its normal effect</span>';
|
||||
}
|
||||
else if (roll >= 47 && roll <= 55) {
|
||||
output2 = '<span style="color:red"><B>Warp Whispers:</B> The voices of daemons fill the air within 4d10 metres of the psyker, whispering terrible secrets and shocking truths. Everyone in the area (including the psyker ) must make a Hard (–20) Willpower Test or suffer 1d5 Corruption Points and an equal amount of Willpower Damage. In addition, whether or not the psyker passes the Willpower Test, he still suffers an additional 1d5+5 Willpower Damage</span>';
|
||||
}
|
||||
else if (roll >= 56 && roll <= 58) {
|
||||
output2 = '<span style="color:red"><B>Vice Versa:</B> The psyker’s mind is thrown out of his body and into another nearby creature or person. The psyker and a random being (note, this cannot be a daemon, untouchable or other “soulless” creature) within 50 metres swap consciousness for 1d10 rounds. This may be allies or enemies. Each creature retains its Weapon Skill, Ballistic Skill, Intelligence, Perception, Willpower and Fellowship during the swap, but all other Characteristics are of the new host body. If either body is slain, the effect ends immediately and both parties return to their original bodies. Both suffer 1d5 Intelligence Damage from the experience. If there are no creatures within range, the psyker becomes catatonic for 1d5 rounds while his mind wanders the warp. This journey causes 1d10 Willpower Damage, 1d10 Intelligence Damage and 1d10 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 59 && roll <= 67) {
|
||||
output2 = '<span style="color:red"><B>Dark Summoning:</B> Khorne’s wrath swells at the arrogance of the psyker, and he sends a Bloodletter to deal with the fool. (see Chapter XI: Adversaries) The Bloodletter rips into existence within 3d10 metres of the psyker, for a number of rounds equal to 1d5 plus the daemon’s Toughness Bonus. The psyker’s turn immediately ends, and the Daemon may take its turn immediately. It detests the psyker and focuses all of its attacks upon the fool that unwittingly summoned it. It will not attack anyone else, even if others attack it</span>';
|
||||
}
|
||||
else if (roll >= 68 && roll <= 72) {
|
||||
output2 = '<span style="color:red"><B>Rending the Veil:</B> The air vibrates with images of cackling daemons and the kaleidoscopic taint of the warp is rendered visible. All sentient creatures (any creature with an Intelligence characteristic) within 1d100 metres must test against Fear (2). The psyker must Test against Fear (4) instead. This effect lasts for 1d5 rounds</span>';
|
||||
}
|
||||
else if (roll >= 73 && roll <= 78) {
|
||||
output2 = '<span style="color:red"><B>Blood Rain:</B> A psychic storm erupts, covering an area of 5d10 metres in which everyone must pass a Challenging (+0) Strength Test or be knocked to the ground. In addition to howling winds and the skies raining blood, any psychic powers used in the area automatically invoke Perils of the Warp for 1d5 rounds, in addition to any Psychic Phenomena those powers cause. The psyker gains 1d5+1 Corruption Points</span>';
|
||||
}
|
||||
else if (roll >= 79 && roll <= 82) {
|
||||
output2 = '<span style="color:red"><B>Cataclysmic Blast:</B> The psyker’s power overloads, arcing out in great bolts of warp energy. Anyone within 1d10 metres (including the psyker) takes 1d10+8 Energy Damage with a Pen of 5. The psyker may not Dodge this, or stop the attack with a Field Save. In addition, all of the psyker’s clothing and gear is destroyed, leaving him naked and smoking on the ground. The psyker may use no further powers for 1d5 hours after the event</span>';
|
||||
}
|
||||
else if (roll >= 83 && roll <= 86) {
|
||||
output2 = '<span style="color:red"><B>Mass Possession:</B> Daemons ravage the mind of every living thing within 1d100 metres. Every character in the area must resist a possession attack (see the Possession Trait in Chapter IV: Talents and Traits; the attacker is a random Lesser Daemon). This possession will last for no more than 2d10 rounds, after which the daemons are cast back into the warp</span>';
|
||||
}
|
||||
else if (roll >= 87 && roll <= 90) {
|
||||
output2 = '<span style="color:red"><B>Reality Quake:</B> Reality buckles around the psyker, and an area radiating out 3d10 metres from him is sundered: solid objects alternately rot, burn, and freeze, and everyone and everything in the area takes 2d10 Rending Damage, ignoring armour (and unable to be dodged). Warded objects, daemons and untouchables halve the Damage rolled</span>';
|
||||
}
|
||||
else if (roll >= 91 && roll <= 99) {
|
||||
output2 = '<span style="color:red"><B>Grand Possession:</B> A grand and terrible warp entity takes interest in the psyker’s soul, descending from the warp to seize the mortal’s body for its own purposes. A Greater Daemon chosen by the GM attempts to possess the psyker (see the Possession Trait in Chapter IV: Talents and Traits). Even if the daemon fails, the psyker still suffers 2d10 Toughness Damage, and will forever add +10 to all rolls on the Psychic Phenomena and Perils of the Warp tables as his body now serves as a conduit to the power of the warp. If the character dies while possessed, the Greater Daemon manifests in the real world for a number of days equal to its Toughness Bonus or until it is destroyed</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output2 = '<span style="color:red"><B>Annihilation:</B> The psyker is immediately and irrevocably destroyed, burned to nothing by the screaming fi res of the Immaterium or dragged into the deepest maelstrom of the warp. The psyker may not spend Infamy to recover from this death, he is irrevocably destroyed. There is a chance that a daemonic entity of some sort appears in the psyker’s place— the type of daemon that appears is determined by the GM, based on how powerful the psyker was—more powerful psykers draw more powerful daemons. The percentage chance that the daemon appears is equal to the psyker’s Willpower characteristic (roll a d100, if the result is equal to or under the characteristic, the daemon appears)</span>';
|
||||
}
|
||||
else {
|
||||
output2 = '<span style="color:red"><B>Unexpected value</B></span>';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
};
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.rolls.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!rollperiltable40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 1) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify only the token ' +
|
||||
'parameter for the !rollperiltable40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRollPsyTable40k(paramArray[0].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
}())
|
||||
@@ -1,135 +1,135 @@
|
||||
/**
|
||||
* This script rolls a d100, add a modifier and computes a result compared to the the Black Crusade Psychic Phenomena table.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !rollpsytable40k [tokenName], [ModifierValue]
|
||||
*
|
||||
* This script is based on Jack D works, modified by Pixizz.
|
||||
**/
|
||||
|
||||
//Rolls a d100, add the modifier and determine the phenomenon based on the Black Crusade chart.
|
||||
|
||||
var rollpsytable40k = rollpsytable40k || (function(){
|
||||
|
||||
var rollResultForRollPsyTable40k = function (token, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var output1 = token + ' rolled a <B>' + roll + '</B> with a modifier of<B> ' + modifier + ' </B>on the Psychic Phenomena Table';
|
||||
var result = roll + parseInt(modifier);
|
||||
var output2;
|
||||
//Form output message based on result
|
||||
if (result <= 3) {
|
||||
output2 = '<span><B>Dark Foreboding:</B> A faint breeze blows past the sorcerer and those near him, and everyone gets the feeling that somewhere in the galaxy something unfortunate just happened</span>';
|
||||
}
|
||||
else if (result >= 4 && result <= 5) {
|
||||
output2 = '<span><B>Warp Echo:</B> For a few moments, all noises cause echoes, regardless of the surroundings</span>';
|
||||
}
|
||||
else if (result >= 6 && result <= 8) {
|
||||
output2 = '<span><B>Unholy Stench:</B> The air around the psyker becomes permeated with a bizarre and foul smell</span>';
|
||||
}
|
||||
else if (result >= 9 && result <= 11) {
|
||||
output2 = '<span><B>Mind Warp:</B> The psyker suffers a –5 penalty to Willpower Tests until the start of his next turn as his own inherent phobias, suspicions and hatreds surge to the surface of his mind in a wave of unbound emotion</span>';
|
||||
}
|
||||
else if (result >= 12 && result <= 14) {
|
||||
output2 = '<span><B>Hoarfrost:</B> The temperature plummets for an instant, and a thin coating of frost covers everything within 3d10 metres</span>';
|
||||
}
|
||||
else if (result >= 15 && result <= 17) {
|
||||
output2 = '<span><B>Aura of Taint:</B> All animals within 1d100 metres become spooked and agitated; Characters with Psyniscience can pinpoint the psyker as the cause</span>';
|
||||
}
|
||||
else if (result >= 18 && result <= 20) {
|
||||
output2 = '<span><B>Memory Worm:</B> All people within line of sight of the psyker forget something trivial</span>';
|
||||
}
|
||||
else if (result >= 21 && result <= 23) {
|
||||
output2 = '<span><B>Spoilage:</B> Food and drink go bad in a 5d10 metre radius</span>';
|
||||
}
|
||||
else if (result >= 24 && result <= 26) {
|
||||
output2 = '<span><B>Haunting Breeze:</B> Winds whip up around the psyker for a few moments, blowing light objects around and guttering fires within 3d10 metres</span>';
|
||||
}
|
||||
else if (result >= 27 && result <= 29) {
|
||||
output2 = '<span><B>Veil of Darkness:</B> For a brief moment (effectively the remainder of the round), the area within 3d10 metres is plunged into immediate darkness</span>';
|
||||
}
|
||||
else if (result >= 30 && result <= 32) {
|
||||
output2 = '<span><B>Breath Leech:</B> Everyone (including the psyker) within a 3d10 metre radius becomes short of breath for one round and cannot make any Run or Charge actions</span>';
|
||||
}
|
||||
else if (result >= 33 && result <= 35) {
|
||||
output2 = '<span><B>Distorted Reflections:</B> Mirrors and other reflective surfaces within a radius of 5d10 metres distort or shatter</span>';
|
||||
}
|
||||
else if (result >= 36 && result <= 38) {
|
||||
output2 = '<span><B>Daemonic Mask:</B> For a fleeting moment, the psyker takes on a daemonic appearance and gains a Fear rating of 1 until the start of the next turn. However, he also gains one Corruption Point</span>';
|
||||
}
|
||||
else if (result >= 39 && result <= 41) {
|
||||
output2 = '<span><B>Unnatural Decay:</B> All plant life within 3d10 metres of the psyker withers and dies</span>';
|
||||
}
|
||||
else if (result >= 42 && result <= 44) {
|
||||
output2 = '<span><B>Spectral Gale:</B> Howling winds erupt around the psyker, requiring him and everyone within 4d10 metres to make an Easy (+30) Agility or Strength Test to avoid being knocked to the ground</span>';
|
||||
}
|
||||
else if (result >= 45 && result <= 47) {
|
||||
output2 = '<span><B>Bloody Tears:</B> Blood weeps from stone and wood within 3d10 metres of the psyker. If there are any pictures or statues of people inside this area, they appear to be crying blood</span>';
|
||||
}
|
||||
else if (result >= 48 && result <= 50) {
|
||||
output2 = '<span><B>The Earth Protests:</B> The ground suddenly shakes, and everyone (including the psyker) within a 5d10 metre radius must make a Routine (+10) Agility Test or be knocked down</span>';
|
||||
}
|
||||
else if (result >= 51 && result <= 53) {
|
||||
output2 = '<span><B>Actinic Discharge:</B> Static electricity fills the air within 5d10 metres causing hair to stand on end and unprotected electronics to short out, while the psyker is wreathed in eldritch lightning</span>';
|
||||
}
|
||||
else if (result >= 54 && result <= 56) {
|
||||
output2 = '<span><B>Warp Ghosts:</B> Ghostly apparitions fill the air within 3d10 metres around the psyker, flying about and howling in pain for a few brief moments. Everyone in the radius (except the psyker himself) must test against a Fear rating of 1</span>';
|
||||
}
|
||||
else if (result >= 57 && result <= 59) {
|
||||
output2 = '<span><B>Falling Upwards:</B> Everything within 2d10 metres of the psyker (including the psyker himself) rises 1d10 metres into the air as gravity briefl y ceases. Almost immediately, everything crashes back to earth, suffering falling Damage as appropriate for the distances fallen</span>';
|
||||
}
|
||||
else if (result >= 60 && result <= 62) {
|
||||
output2 = '<span><B>Banshee Howl:</B> A shrill keening rings out across the immediate area, shattering glass and forcing every mortal creature able to hear it (including the psyker) to pass a Challenging (+0) Toughness Test or be deafened for 1d10 rounds</span>';
|
||||
}
|
||||
else if (result >= 63 && result <= 65) {
|
||||
output2 = '<span><B>The Furies:</B> The Psyker is assailed by unseen horrors. He is slammed to the ground and suffers 1d5 wounds in Damage (ignoring armour, but not Toughness Bonus) and he must test against Fear (2)</span>';
|
||||
}
|
||||
else if (result >= 66 && result <= 68) {
|
||||
output2 = '<span><B>Shadow of the Warp:</B> For a split second, the world changes in appearance, and everyone within 1d100 metres has brief but horrific glimpse of the shadow of the warp. Everyone in the area (including the psyker) must make a Difficult (–10) Willpower Test or gain 1d5 Corruption Points</span>';
|
||||
}
|
||||
else if (result >= 69 && result <= 71) {
|
||||
output2 = '<span><B>Tech Scorn:</B> The machine spirits reject your unnatural ways. All un-warded technology within 5d10 metres malfunction momentarily, and all ranged weapons Jam (see Chapter I: Playing the Game), whilst characters with cybernetic implants must pass a Routine (+10) Toughness Test or suffer 1d5 Damage, ignoring Toughness Bonus and Armour</span>';
|
||||
}
|
||||
else if (result >= 72 && result <= 74) {
|
||||
output2 = '<span><B>Warp Madness:</B> A violent ripple of tainted discord causes all creatures within 2d10 metres (with the exception of the Psyker) to become Frenzied for a Round and suffer 1d5 Corruption Points unless they can pass a Diffi cult (–10) Willpower Test</span>';
|
||||
}
|
||||
else {
|
||||
output2 = '<span style="color:red"><B>Perils of the Warp:</B> The warp opens in a maelstrom of energy. <B>Roll Perils of the Warp instead.</B></span>';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
};
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.results.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!rollpsytable40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 2) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify two comma-separated ' +
|
||||
'parameters for the !rollpsytable40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRollPsyTable40k(paramArray[0].trim(), paramArray[1].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
/**
|
||||
* This script rolls a d100, add a modifier and computes a result compared to the the Black Crusade Psychic Phenomena table.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !rollpsytable40k [tokenName], [ModifierValue]
|
||||
*
|
||||
* This script is based on Jack D works, modified by Pixizz.
|
||||
**/
|
||||
|
||||
//Rolls a d100, add the modifier and determine the phenomenon based on the Black Crusade chart.
|
||||
|
||||
var rollpsytable40k = rollpsytable40k || (function(){
|
||||
|
||||
var rollResultForRollPsyTable40k = function (token, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var output1 = token + ' rolled a <B>' + roll + '</B> with a modifier of<B> ' + modifier + ' </B>on the Psychic Phenomena Table';
|
||||
var result = roll + parseInt(modifier);
|
||||
var output2;
|
||||
//Form output message based on result
|
||||
if (result <= 3) {
|
||||
output2 = '<span><B>Dark Foreboding:</B> A faint breeze blows past the sorcerer and those near him, and everyone gets the feeling that somewhere in the galaxy something unfortunate just happened</span>';
|
||||
}
|
||||
else if (result >= 4 && result <= 5) {
|
||||
output2 = '<span><B>Warp Echo:</B> For a few moments, all noises cause echoes, regardless of the surroundings</span>';
|
||||
}
|
||||
else if (result >= 6 && result <= 8) {
|
||||
output2 = '<span><B>Unholy Stench:</B> The air around the psyker becomes permeated with a bizarre and foul smell</span>';
|
||||
}
|
||||
else if (result >= 9 && result <= 11) {
|
||||
output2 = '<span><B>Mind Warp:</B> The psyker suffers a –5 penalty to Willpower Tests until the start of his next turn as his own inherent phobias, suspicions and hatreds surge to the surface of his mind in a wave of unbound emotion</span>';
|
||||
}
|
||||
else if (result >= 12 && result <= 14) {
|
||||
output2 = '<span><B>Hoarfrost:</B> The temperature plummets for an instant, and a thin coating of frost covers everything within 3d10 metres</span>';
|
||||
}
|
||||
else if (result >= 15 && result <= 17) {
|
||||
output2 = '<span><B>Aura of Taint:</B> All animals within 1d100 metres become spooked and agitated; Characters with Psyniscience can pinpoint the psyker as the cause</span>';
|
||||
}
|
||||
else if (result >= 18 && result <= 20) {
|
||||
output2 = '<span><B>Memory Worm:</B> All people within line of sight of the psyker forget something trivial</span>';
|
||||
}
|
||||
else if (result >= 21 && result <= 23) {
|
||||
output2 = '<span><B>Spoilage:</B> Food and drink go bad in a 5d10 metre radius</span>';
|
||||
}
|
||||
else if (result >= 24 && result <= 26) {
|
||||
output2 = '<span><B>Haunting Breeze:</B> Winds whip up around the psyker for a few moments, blowing light objects around and guttering fires within 3d10 metres</span>';
|
||||
}
|
||||
else if (result >= 27 && result <= 29) {
|
||||
output2 = '<span><B>Veil of Darkness:</B> For a brief moment (effectively the remainder of the round), the area within 3d10 metres is plunged into immediate darkness</span>';
|
||||
}
|
||||
else if (result >= 30 && result <= 32) {
|
||||
output2 = '<span><B>Breath Leech:</B> Everyone (including the psyker) within a 3d10 metre radius becomes short of breath for one round and cannot make any Run or Charge actions</span>';
|
||||
}
|
||||
else if (result >= 33 && result <= 35) {
|
||||
output2 = '<span><B>Distorted Reflections:</B> Mirrors and other reflective surfaces within a radius of 5d10 metres distort or shatter</span>';
|
||||
}
|
||||
else if (result >= 36 && result <= 38) {
|
||||
output2 = '<span><B>Daemonic Mask:</B> For a fleeting moment, the psyker takes on a daemonic appearance and gains a Fear rating of 1 until the start of the next turn. However, he also gains one Corruption Point</span>';
|
||||
}
|
||||
else if (result >= 39 && result <= 41) {
|
||||
output2 = '<span><B>Unnatural Decay:</B> All plant life within 3d10 metres of the psyker withers and dies</span>';
|
||||
}
|
||||
else if (result >= 42 && result <= 44) {
|
||||
output2 = '<span><B>Spectral Gale:</B> Howling winds erupt around the psyker, requiring him and everyone within 4d10 metres to make an Easy (+30) Agility or Strength Test to avoid being knocked to the ground</span>';
|
||||
}
|
||||
else if (result >= 45 && result <= 47) {
|
||||
output2 = '<span><B>Bloody Tears:</B> Blood weeps from stone and wood within 3d10 metres of the psyker. If there are any pictures or statues of people inside this area, they appear to be crying blood</span>';
|
||||
}
|
||||
else if (result >= 48 && result <= 50) {
|
||||
output2 = '<span><B>The Earth Protests:</B> The ground suddenly shakes, and everyone (including the psyker) within a 5d10 metre radius must make a Routine (+10) Agility Test or be knocked down</span>';
|
||||
}
|
||||
else if (result >= 51 && result <= 53) {
|
||||
output2 = '<span><B>Actinic Discharge:</B> Static electricity fills the air within 5d10 metres causing hair to stand on end and unprotected electronics to short out, while the psyker is wreathed in eldritch lightning</span>';
|
||||
}
|
||||
else if (result >= 54 && result <= 56) {
|
||||
output2 = '<span><B>Warp Ghosts:</B> Ghostly apparitions fill the air within 3d10 metres around the psyker, flying about and howling in pain for a few brief moments. Everyone in the radius (except the psyker himself) must test against a Fear rating of 1</span>';
|
||||
}
|
||||
else if (result >= 57 && result <= 59) {
|
||||
output2 = '<span><B>Falling Upwards:</B> Everything within 2d10 metres of the psyker (including the psyker himself) rises 1d10 metres into the air as gravity briefl y ceases. Almost immediately, everything crashes back to earth, suffering falling Damage as appropriate for the distances fallen</span>';
|
||||
}
|
||||
else if (result >= 60 && result <= 62) {
|
||||
output2 = '<span><B>Banshee Howl:</B> A shrill keening rings out across the immediate area, shattering glass and forcing every mortal creature able to hear it (including the psyker) to pass a Challenging (+0) Toughness Test or be deafened for 1d10 rounds</span>';
|
||||
}
|
||||
else if (result >= 63 && result <= 65) {
|
||||
output2 = '<span><B>The Furies:</B> The Psyker is assailed by unseen horrors. He is slammed to the ground and suffers 1d5 wounds in Damage (ignoring armour, but not Toughness Bonus) and he must test against Fear (2)</span>';
|
||||
}
|
||||
else if (result >= 66 && result <= 68) {
|
||||
output2 = '<span><B>Shadow of the Warp:</B> For a split second, the world changes in appearance, and everyone within 1d100 metres has brief but horrific glimpse of the shadow of the warp. Everyone in the area (including the psyker) must make a Difficult (–10) Willpower Test or gain 1d5 Corruption Points</span>';
|
||||
}
|
||||
else if (result >= 69 && result <= 71) {
|
||||
output2 = '<span><B>Tech Scorn:</B> The machine spirits reject your unnatural ways. All un-warded technology within 5d10 metres malfunction momentarily, and all ranged weapons Jam (see Chapter I: Playing the Game), whilst characters with cybernetic implants must pass a Routine (+10) Toughness Test or suffer 1d5 Damage, ignoring Toughness Bonus and Armour</span>';
|
||||
}
|
||||
else if (result >= 72 && result <= 74) {
|
||||
output2 = '<span><B>Warp Madness:</B> A violent ripple of tainted discord causes all creatures within 2d10 metres (with the exception of the Psyker) to become Frenzied for a Round and suffer 1d5 Corruption Points unless they can pass a Diffi cult (–10) Willpower Test</span>';
|
||||
}
|
||||
else {
|
||||
output2 = '<span style="color:red"><B>Perils of the Warp:</B> The warp opens in a maelstrom of energy. <B>Roll Perils of the Warp instead.</B></span>';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
};
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.results.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!rollpsytable40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 2) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify two comma-separated ' +
|
||||
'parameters for the !rollpsytable40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRollPsyTable40k(paramArray[0].trim(), paramArray[1].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
}())
|
||||
@@ -1,100 +1,100 @@
|
||||
/**
|
||||
* This script rolls a d100 and computes and outputs the success results based
|
||||
* originally on Dark Heresy Second Edition RPG criteria and now Black Crusade RPG criteria.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !roll40k [tokenName], [attributeValue], [unnaturalAttributeValue], [ModifierValue]
|
||||
*
|
||||
* This script was written by Jack D on Roll20 Forums at https://app.roll20.net/forum/post/4607859/help-dark-heresy-2nd-edition-api
|
||||
* and later modified by Pixizz for Black Crusade.
|
||||
**/
|
||||
|
||||
//Rolls a d100 and calculates the success or fail results to the chat window.
|
||||
var roll40k = roll40k || (function(){
|
||||
|
||||
/** determine Hit Location from the roll value. **/
|
||||
determineLocation = function(roll) {
|
||||
var hitLocation;
|
||||
if (roll === 10 || roll === 20 || roll === 30 || roll === 40 || roll === 50 || roll === 60 || roll === 70 || roll === 80 || roll === 90) {
|
||||
hitLocation = ' (Head)';
|
||||
}
|
||||
else if (roll === 11 || roll === 21 || roll === 31 || roll === 41 || roll === 51 || roll === 61 || roll === 71 || roll === 81 || roll === 91 || roll === 2) {
|
||||
hitLocation = ' (Right Arm)';
|
||||
}
|
||||
else if (roll === 12 || roll === 22 || roll === 32 || roll === 42 || roll === 52 || roll === 62 || roll === 72 || roll === 82 || roll === 92 || roll === 3) {
|
||||
hitLocation = ' (Left Arm)';
|
||||
}
|
||||
else if (roll === 13 || roll === 23 || roll === 33 || roll === 43 || roll === 53 || roll === 63 || roll === 73 || roll === 83 || roll === 93 || roll === 4 || roll === 14 || roll === 24 || roll === 34 || roll === 44 || roll === 54 || roll === 64 || roll === 74 || roll === 84 || roll === 94 || roll === 5 || roll === 15 || roll === 25 || roll === 35 || roll === 45 || roll === 55 || roll === 65 || roll === 75 || roll === 85 || roll === 95 || roll === 6 || roll === 16 || roll === 26 || roll === 36 || roll === 46 || roll === 56 || roll === 66 || roll === 76 || roll === 86 || roll === 96 || roll === 7) {
|
||||
hitLocation = ' (Body)';
|
||||
}
|
||||
else if (roll === 17 || roll === 27 || roll === 37 || roll === 47 || roll === 57 || roll === 67 || roll === 77 || roll === 87 || roll === 97 || roll === 8 || roll === 18 || roll === 28 || roll === 38 || roll === 48 || roll === 58) {
|
||||
hitLocation = ' (Right Leg)';
|
||||
}
|
||||
else {
|
||||
hitLocation = ' (Left Leg)';
|
||||
}
|
||||
// return hit location.
|
||||
return hitLocation;
|
||||
};
|
||||
|
||||
var rollResultForRoll40k = function (token, attribute, unAttribute, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var modTarget = parseInt(attribute) + parseInt(modifier);
|
||||
var output1, output2, degOfSuc;
|
||||
//Form output message based on result
|
||||
if (roll === 1) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' rolled a 1 (Head) and automatically succeeds by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' rolled a 100 and automatically fails by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll <= modTarget) {
|
||||
degOfSuc = (Math.floor(modTarget / 10) - Math.floor(roll / 10)) + 1 + parseInt(unAttribute);
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + determineLocation(roll) + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' succeeds by <B>' + degOfSuc + ' degree(s)</B>.</span>';
|
||||
}
|
||||
else {
|
||||
degOfSuc = (Math.floor(roll / 10) - Math.floor(modTarget / 10)) + 1;
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' fails by <B>' + degOfSuc + ' degree(s)</B></span>.';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
},
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.results.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!roll40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 4) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify four comma-separated ' +
|
||||
'parameters for the !roll40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRoll40k(paramArray[0].trim(), paramArray[1].trim(), paramArray[2].trim(), paramArray[3].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
/**
|
||||
* This script rolls a d100 and computes and outputs the success results based
|
||||
* originally on Dark Heresy Second Edition RPG criteria and now Black Crusade RPG criteria.
|
||||
*
|
||||
* The following commands is used:
|
||||
* !roll40k [tokenName], [attributeValue], [unnaturalAttributeValue], [ModifierValue]
|
||||
*
|
||||
* This script was written by Jack D on Roll20 Forums at https://app.roll20.net/forum/post/4607859/help-dark-heresy-2nd-edition-api
|
||||
* and later modified by Pixizz for Black Crusade.
|
||||
**/
|
||||
|
||||
//Rolls a d100 and calculates the success or fail results to the chat window.
|
||||
var roll40k = roll40k || (function(){
|
||||
|
||||
/** determine Hit Location from the roll value. **/
|
||||
determineLocation = function(roll) {
|
||||
var hitLocation;
|
||||
if (roll === 10 || roll === 20 || roll === 30 || roll === 40 || roll === 50 || roll === 60 || roll === 70 || roll === 80 || roll === 90) {
|
||||
hitLocation = ' (Head)';
|
||||
}
|
||||
else if (roll === 11 || roll === 21 || roll === 31 || roll === 41 || roll === 51 || roll === 61 || roll === 71 || roll === 81 || roll === 91 || roll === 2) {
|
||||
hitLocation = ' (Right Arm)';
|
||||
}
|
||||
else if (roll === 12 || roll === 22 || roll === 32 || roll === 42 || roll === 52 || roll === 62 || roll === 72 || roll === 82 || roll === 92 || roll === 3) {
|
||||
hitLocation = ' (Left Arm)';
|
||||
}
|
||||
else if (roll === 13 || roll === 23 || roll === 33 || roll === 43 || roll === 53 || roll === 63 || roll === 73 || roll === 83 || roll === 93 || roll === 4 || roll === 14 || roll === 24 || roll === 34 || roll === 44 || roll === 54 || roll === 64 || roll === 74 || roll === 84 || roll === 94 || roll === 5 || roll === 15 || roll === 25 || roll === 35 || roll === 45 || roll === 55 || roll === 65 || roll === 75 || roll === 85 || roll === 95 || roll === 6 || roll === 16 || roll === 26 || roll === 36 || roll === 46 || roll === 56 || roll === 66 || roll === 76 || roll === 86 || roll === 96 || roll === 7) {
|
||||
hitLocation = ' (Body)';
|
||||
}
|
||||
else if (roll === 17 || roll === 27 || roll === 37 || roll === 47 || roll === 57 || roll === 67 || roll === 77 || roll === 87 || roll === 97 || roll === 8 || roll === 18 || roll === 28 || roll === 38 || roll === 48 || roll === 58) {
|
||||
hitLocation = ' (Right Leg)';
|
||||
}
|
||||
else {
|
||||
hitLocation = ' (Left Leg)';
|
||||
}
|
||||
// return hit location.
|
||||
return hitLocation;
|
||||
};
|
||||
|
||||
var rollResultForRoll40k = function (token, attribute, unAttribute, modifier) {
|
||||
var roll = randomInteger(100);
|
||||
var modTarget = parseInt(attribute) + parseInt(modifier);
|
||||
var output1, output2, degOfSuc;
|
||||
//Form output message based on result
|
||||
if (roll === 1) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' rolled a 1 (Head) and automatically succeeds by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll === 100) {
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' rolled a 100 and automatically fails by <B>1 degree</B>.</span>';
|
||||
}
|
||||
else if (roll <= modTarget) {
|
||||
degOfSuc = (Math.floor(modTarget / 10) - Math.floor(roll / 10)) + 1 + parseInt(unAttribute);
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + determineLocation(roll) + '</B>. ';
|
||||
output2 = '<span style="color:green">' + token + ' succeeds by <B>' + degOfSuc + ' degree(s)</B>.</span>';
|
||||
}
|
||||
else {
|
||||
degOfSuc = (Math.floor(roll / 10) - Math.floor(modTarget / 10)) + 1;
|
||||
output1 = token + ' has a modified target of <B>' + modTarget + '</B> and rolled a <B>' + roll + '</B>. ';
|
||||
output2 = '<span style="color:red">' + token + ' fails by <B>' + degOfSuc + ' degree(s)</B></span>.';
|
||||
}
|
||||
//Return output
|
||||
return output1 + '<br><br>' + output2;
|
||||
},
|
||||
|
||||
processInlinerolls = function(msg) {
|
||||
if (_.has(msg, 'inlinerolls')) {
|
||||
return _.chain(msg.inlinerolls)
|
||||
.reduce(function(previous, current, index) {
|
||||
previous['$[[' + index + ']]'] = current.results.total || 0;
|
||||
return previous;
|
||||
},{})
|
||||
.reduce(function(previous, current, index) {
|
||||
return previous.replace(index, current);
|
||||
}, msg.content)
|
||||
.value();
|
||||
} else {
|
||||
return msg.content;
|
||||
}
|
||||
};
|
||||
|
||||
/** Interpret the chat commands. **/
|
||||
on('chat:message', function (msg) {
|
||||
'use strict';
|
||||
var cmdName = '!roll40k ';
|
||||
if (msg.type === 'api' && msg.content.indexOf(cmdName) !== -1) {
|
||||
let content = processInlinerolls(msg);
|
||||
var paramArray = content.slice(cmdName.length).split(',');
|
||||
if (paramArray.length !== 4) {
|
||||
sendChat(msg.who, '/w ' + msg.who + ' You must specify four comma-separated ' +
|
||||
'parameters for the !roll40k command. Do not use commas in the input zones.');
|
||||
}
|
||||
else {
|
||||
var result = rollResultForRoll40k(paramArray[0].trim(), paramArray[1].trim(), paramArray[2].trim(), paramArray[3].trim());
|
||||
sendChat(msg.who, result);
|
||||
}
|
||||
}
|
||||
});
|
||||
}())
|
||||
@@ -1,58 +1,58 @@
|
||||
//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)
|
||||
|
||||
//enable name edit
|
||||
|
||||
on(`clicked:edit_npc_name`, eventInfo => setAttrs({npc_name_toggle:"on"}));
|
||||
//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)
|
||||
|
||||
//enable name edit
|
||||
|
||||
on(`clicked:edit_npc_name`, eventInfo => setAttrs({npc_name_toggle:"on"}));
|
||||
on(`clicked:save_npc_name`, eventInfo => setAttrs({npc_name_toggle:"0"}));
|
||||
@@ -1,185 +1,185 @@
|
||||
/* Set the min-width so that when the window is resized the look will stay consistant */
|
||||
.charsheet {
|
||||
background-color: #fff;
|
||||
min-width: 100%;
|
||||
border-style:inset;
|
||||
}
|
||||
.charsheet label {
|
||||
margin-top: 10px;
|
||||
}
|
||||
/* Universal styling applied to all elements of these types */
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
label {
|
||||
text-align: center !important;
|
||||
}
|
||||
img {
|
||||
max-height: 100px;
|
||||
}
|
||||
.center {
|
||||
padding-bottom: 10px;
|
||||
text-align: center !important;
|
||||
border-spacing: 10px !important;
|
||||
background-color: antiquewhite !important;
|
||||
}
|
||||
.inputmargin {
|
||||
text-align: center !important;
|
||||
width: 100%;
|
||||
}
|
||||
.wide {
|
||||
width: 45% !important;
|
||||
}
|
||||
.center2 {
|
||||
padding-bottom: 10px;
|
||||
text-align: center !important;
|
||||
border-spacing: 10px !important;
|
||||
background-color: antiquewhite !important;
|
||||
}
|
||||
.ui-dialog .charsheet {
|
||||
}
|
||||
.charsheet {
|
||||
min-width: 80%;
|
||||
max-width: 95%;
|
||||
border-style: inset;
|
||||
background-color: antiquewhite;
|
||||
}
|
||||
.option {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
div.sheet-hunter, div.sheet-stats, div.sheet-combat, div.sheet-weapons, div.sheet-skills, div.sheet-items, div.sheet-levels, div.sheet-feats, div.sheet-traits {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab1:unchecked ~ div.sheet-hunter {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab2:unchecked ~ div.sheet-stats {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab3:unchecked ~ div.sheet-combat {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab4:unchecked ~ div.sheet-weapons {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab5:unchecked ~ div.sheet-skills {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab6:unchecked ~ div.sheet-items {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab7:unchecked ~ div.sheet-levels {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab8:unchecked ~ div.sheet-feats {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab9:unchecked ~ div.sheet-traits {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab1:checked ~ div.sheet-hunter {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab2:checked ~ div.sheet-stats {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab3:checked ~ div.sheet-combat {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab4:checked ~ div.sheet-weapons {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab5:checked ~ div.sheet-skills {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab6:checked ~ div.sheet-items {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab7:checked ~ div.sheet-levels {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab8:checked ~ div.sheet-feats {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab9:checked ~ div.sheet-traits {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
.div{
|
||||
background-color: antiquewhite;
|
||||
}
|
||||
.container {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow:wrap;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items:flex-start;
|
||||
width: 90%;
|
||||
}
|
||||
.containercol {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: column;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
.containercol4 {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: column;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
justify-content:center;
|
||||
width: 20%;
|
||||
}
|
||||
.containercol2 {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: column;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
justify-content:center;
|
||||
width: 50%;
|
||||
}
|
||||
.containerrow {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: row;
|
||||
flex-direction: row;
|
||||
align-items: stretch;
|
||||
justify-content:center;
|
||||
width: auto;
|
||||
}
|
||||
.item {
|
||||
flex-grow: 1;
|
||||
/* default 0 */
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
background-color: antiquewhite;
|
||||
}
|
||||
.item4 {
|
||||
flex-grow: 1;
|
||||
/* default 0 */
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
background-color: antiquewhite;
|
||||
width: 100%;
|
||||
}
|
||||
.sheet-bnb-logo {
|
||||
height: 116px;
|
||||
}
|
||||
.input, .sheet-short {
|
||||
width: 25px;
|
||||
}
|
||||
/* Set the min-width so that when the window is resized the look will stay consistant */
|
||||
.charsheet {
|
||||
background-color: #fff;
|
||||
min-width: 100%;
|
||||
border-style:inset;
|
||||
}
|
||||
.charsheet label {
|
||||
margin-top: 10px;
|
||||
}
|
||||
/* Universal styling applied to all elements of these types */
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
label {
|
||||
text-align: center !important;
|
||||
}
|
||||
img {
|
||||
max-height: 100px;
|
||||
}
|
||||
.center {
|
||||
padding-bottom: 10px;
|
||||
text-align: center !important;
|
||||
border-spacing: 10px !important;
|
||||
background-color: antiquewhite !important;
|
||||
}
|
||||
.inputmargin {
|
||||
text-align: center !important;
|
||||
width: 100%;
|
||||
}
|
||||
.wide {
|
||||
width: 45% !important;
|
||||
}
|
||||
.center2 {
|
||||
padding-bottom: 10px;
|
||||
text-align: center !important;
|
||||
border-spacing: 10px !important;
|
||||
background-color: antiquewhite !important;
|
||||
}
|
||||
.ui-dialog .charsheet {
|
||||
}
|
||||
.charsheet {
|
||||
min-width: 80%;
|
||||
max-width: 95%;
|
||||
border-style: inset;
|
||||
background-color: antiquewhite;
|
||||
}
|
||||
.option {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
div.sheet-hunter, div.sheet-stats, div.sheet-combat, div.sheet-weapons, div.sheet-skills, div.sheet-items, div.sheet-levels, div.sheet-feats, div.sheet-traits {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab1:unchecked ~ div.sheet-hunter {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab2:unchecked ~ div.sheet-stats {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab3:unchecked ~ div.sheet-combat {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab4:unchecked ~ div.sheet-weapons {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab5:unchecked ~ div.sheet-skills {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab6:unchecked ~ div.sheet-items {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab7:unchecked ~ div.sheet-levels {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab8:unchecked ~ div.sheet-feats {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab9:unchecked ~ div.sheet-traits {
|
||||
display: none;
|
||||
}
|
||||
input.sheet-tab1:checked ~ div.sheet-hunter {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab2:checked ~ div.sheet-stats {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab3:checked ~ div.sheet-combat {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab4:checked ~ div.sheet-weapons {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab5:checked ~ div.sheet-skills {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab6:checked ~ div.sheet-items {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab7:checked ~ div.sheet-levels {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab8:checked ~ div.sheet-feats {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
input.sheet-tab9:checked ~ div.sheet-traits {
|
||||
display: block;
|
||||
border-style: double
|
||||
}
|
||||
.div{
|
||||
background-color: antiquewhite;
|
||||
}
|
||||
.container {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow:wrap;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items:flex-start;
|
||||
width: 90%;
|
||||
}
|
||||
.containercol {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: column;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
.containercol4 {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: column;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
justify-content:center;
|
||||
width: 20%;
|
||||
}
|
||||
.containercol2 {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: column;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
justify-content:center;
|
||||
width: 50%;
|
||||
}
|
||||
.containerrow {
|
||||
display: flex;
|
||||
/* or inline-flex */
|
||||
flex-flow: row;
|
||||
flex-direction: row;
|
||||
align-items: stretch;
|
||||
justify-content:center;
|
||||
width: auto;
|
||||
}
|
||||
.item {
|
||||
flex-grow: 1;
|
||||
/* default 0 */
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
background-color: antiquewhite;
|
||||
}
|
||||
.item4 {
|
||||
flex-grow: 1;
|
||||
/* default 0 */
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
background-color: antiquewhite;
|
||||
width: 100%;
|
||||
}
|
||||
.sheet-bnb-logo {
|
||||
height: 116px;
|
||||
}
|
||||
.input, .sheet-short {
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"html": "bnb.html",
|
||||
"css": "bnb.css",
|
||||
"authors": "Shawn-M (ryuaced)",
|
||||
"roll20userid": "4170820",
|
||||
"preview": "bnb.png",
|
||||
"instructions": "Bunkers & Borderlands character sheet with some automation.\n\nVersion: 1.0\n\nIf you find bugs or have suggestions, please use the [Github issue tracker](https://github.com/ryuaced/roll20-character-sheets/issues) for this sheet.\n\n",
|
||||
"legacy": false
|
||||
{
|
||||
"html": "bnb.html",
|
||||
"css": "bnb.css",
|
||||
"authors": "Shawn-M (ryuaced)",
|
||||
"roll20userid": "4170820",
|
||||
"preview": "bnb.png",
|
||||
"instructions": "Bunkers & Borderlands character sheet with some automation.\n\nVersion: 1.0\n\nIf you find bugs or have suggestions, please use the [Github issue tracker](https://github.com/ryuaced/roll20-character-sheets/issues) for this sheet.\n\n",
|
||||
"legacy": false
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
Este é o site oficial da editoda do sistema Daemon. Aqui vc pode encontrar um netbook com as regras oficiais do sistema.
|
||||
|
||||
This is the official website of the Daemon system editor. Here you can find a netbook with the official rules of the system.
|
||||
|
||||
Este é o site oficial da editoda do sistema Daemon. Aqui vc pode encontrar um netbook com as regras oficiais do sistema.
|
||||
|
||||
This is the official website of the Daemon system editor. Here you can find a netbook with the official rules of the system.
|
||||
|
||||
https://www.daemon.com.br/home/
|
||||
@@ -1,5 +1,5 @@
|
||||
Este é o site oficial da editoda do sistema Daemon. Aqui vc pode encontrar um netbook com as regras oficiais do sistema.
|
||||
|
||||
This is the official website of the Daemon system editor. Here you can find a netbook with the official rules of the system.
|
||||
|
||||
Este é o site oficial da editoda do sistema Daemon. Aqui vc pode encontrar um netbook com as regras oficiais do sistema.
|
||||
|
||||
This is the official website of the Daemon system editor. Here you can find a netbook with the official rules of the system.
|
||||
|
||||
https://www.daemon.com.br/home/
|
||||
@@ -1,160 +1,160 @@
|
||||
include ../../data/assets
|
||||
|
||||
mixin assetDropdown(assetName, assetObject)
|
||||
select.sub-dropdown(name=`attr_assetdropdown${assetName}`)
|
||||
- var defaultTranslation = 'asset-dropdown-default'
|
||||
option(data-i18n=defaultTranslation value='' disabled='' selected='')=locals.translations[defaultTranslation]
|
||||
each asset, key in assets[assetObject]
|
||||
option(data-i18n=`asset-title-${key}` value=key)=locals.translations[`asset-title-${key}`]
|
||||
|
||||
mixin ability(asset, number, key)
|
||||
.flex-container
|
||||
if asset.firstAbilityChecked && number == 1
|
||||
input.asset-ability(
|
||||
type='checkbox'
|
||||
name=`attr_assetcheckbox_${asset.abilityId}${number}`
|
||||
checked
|
||||
)
|
||||
else
|
||||
input.asset-ability(
|
||||
type='checkbox'
|
||||
name=`attr_assetcheckbox_${asset.abilityId}${number}`
|
||||
)
|
||||
- var translationAbility = `asset-${key}-ability-${number}`
|
||||
.asset-ability
|
||||
p(data-i18n=translationAbility)=locals.translations[translationAbility]
|
||||
if asset.abilityWriteIn
|
||||
if asset.abilityWriteIn.number == number
|
||||
- var translationAbilityWriteIn = `asset-${key}-ability-${number}-write-in`
|
||||
.asset-ability-write-in(data-i18n=translationAbilityWriteIn)=locals.translations[translationAbilityWriteIn]
|
||||
input.border-bottom.no-border(type='text' name=`attr_asset${asset.abilityWriteIn.name}` value='')
|
||||
if asset.list && number == asset.list.ability
|
||||
- var currentListItem = 1
|
||||
ul
|
||||
while currentListItem <= asset.list.number
|
||||
- var translationId = `asset-${key}-ability-${number}-list-${currentListItem++}`
|
||||
li(data-i18n=translationId)=locals.translations[translationId]
|
||||
|
||||
mixin write-in-input(key)
|
||||
.asset-write-in.asset-name(
|
||||
data-i18n=`asset-write-in-${key}`
|
||||
)=locals.translations[`asset-write-in-${key}`]
|
||||
|
||||
mixin description(asset, type, key)
|
||||
if asset.description || asset.writeIn
|
||||
.asset-description
|
||||
if key === 'blade-bound'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetpathnameinput' value='')
|
||||
else if key === 'banner-sworn'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetpathnameinput' value='')
|
||||
else if key === 'devotant'
|
||||
+write-in-input(`${key}-1`)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetgodsnameinput' value='')
|
||||
+write-in-input(`${key}-2`)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetstatinput' value='')
|
||||
else if key === 'empowered'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assettitleinput' value='')
|
||||
else if key === 'wright'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetspecialityinput' value='')
|
||||
if asset.description
|
||||
- var translationDesc = `asset-description-${key}`
|
||||
.asset-description-text(data-i18n=translationDesc)=locals.translations[translationDesc]
|
||||
|
||||
mixin track(number, name)
|
||||
.asset-track-wrapper
|
||||
- var currentTrack = 0
|
||||
- var tranformedName = name.replace('-', '')
|
||||
while currentTrack <= number
|
||||
.asset-track-box
|
||||
if currentTrack == 0
|
||||
.asset-track-box-display=0
|
||||
else
|
||||
.asset-track-box-display=`+ ${currentTrack}`
|
||||
input(type='radio' name=`attr_assettrack_${tranformedName}` value=`${currentTrack}`)
|
||||
- currentTrack++
|
||||
|
||||
mixin combatTalentBuilder
|
||||
input.asset-combat-talent.hide-element(type='checkbox' name='attr_assetcombat-talent')
|
||||
.combat-talent.showhide
|
||||
+assetDropdown('combattalent', 'combatTalents')
|
||||
|
||||
each asset, key in assets.combatTalents
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_assetcombattalentdiv${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
if asset.description
|
||||
.asset-description
|
||||
- var translationDesc = `asset-description-${key}`
|
||||
.asset-description-text(data-i18n=translationDesc)=locals.translations[translationDesc]
|
||||
.flex-wrapper
|
||||
each number in [ 1, 2, 3 ]
|
||||
+ability(asset, number, key)
|
||||
if key === 'ironclad'
|
||||
.asset-track-wrapper.asset-track-wrapper-wordy
|
||||
each track in [ 1, 2 ]
|
||||
- var value = track - 1
|
||||
.asset-track-box
|
||||
.asset-track-box-display=locals.translations[`asset-ironclad-track-${track}`]
|
||||
input(type='radio' name='attr_assettrack_ironclad' value=`${value}`)
|
||||
|
||||
mixin companionBuilder
|
||||
- var assetType = 'companion'
|
||||
input.asset-companion.hide-element(type='checkbox' name=`attr_asset${assetType}`)
|
||||
.companion.showhide
|
||||
+assetDropdown(assetType, 'companions')
|
||||
|
||||
each asset, key in assets.companions
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
.asset-description
|
||||
- var translationDesc = `asset-description-${key}`
|
||||
.asset-write-in.asset-name(data-i18n='asset-companion-name')=locals.translations['asset-companion-name']
|
||||
input.border-bottom.no-border(type='text' name='attr_assetname' value='')
|
||||
.asset-description-text(data-i18n=translationDesc)=locals.translations[translationDesc]
|
||||
.flex-wrapper
|
||||
each ability in [ 1, 2, 3 ]
|
||||
+ability(asset, ability, key)
|
||||
.asset-track-wrapper
|
||||
- var healthValue = 0
|
||||
while healthValue <= asset.health
|
||||
- var value = healthValue++
|
||||
.asset-track-box
|
||||
if value == 0
|
||||
.asset-track-box-display=value
|
||||
else
|
||||
.asset-track-box-display=`+ ${value}`
|
||||
input(type='radio' name=`attr_assettrack_${key}` value=`${value}`)
|
||||
|
||||
mixin ritualBuilder
|
||||
- var assetType = 'ritual'
|
||||
input.asset-ritual.hide-element(type='checkbox' name=`attr_asset${assetType}`)
|
||||
.ritual.showhide
|
||||
+assetDropdown(assetType, 'rituals')
|
||||
|
||||
each asset, key in assets.rituals
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
.flex-wrapper
|
||||
each ability in [ 1, 2, 3 ]
|
||||
+ability(asset, ability, key)
|
||||
if asset.track
|
||||
+track(asset.track, key)
|
||||
|
||||
mixin pathBuilder
|
||||
- var assetType = 'path'
|
||||
input.asset-path.hide-element(type='checkbox' name=`attr_asset${assetType}`)
|
||||
.path.showhide
|
||||
+assetDropdown(assetType, 'paths')
|
||||
|
||||
each asset, key in assets.paths
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
+description(asset, assetType, key)
|
||||
.flex-wrapper
|
||||
each ability in [ 1, 2, 3 ]
|
||||
+ability(asset, ability, key)
|
||||
if asset.track
|
||||
+track(asset.track, key)
|
||||
include ../../data/assets
|
||||
|
||||
mixin assetDropdown(assetName, assetObject)
|
||||
select.sub-dropdown(name=`attr_assetdropdown${assetName}`)
|
||||
- var defaultTranslation = 'asset-dropdown-default'
|
||||
option(data-i18n=defaultTranslation value='' disabled='' selected='')=locals.translations[defaultTranslation]
|
||||
each asset, key in assets[assetObject]
|
||||
option(data-i18n=`asset-title-${key}` value=key)=locals.translations[`asset-title-${key}`]
|
||||
|
||||
mixin ability(asset, number, key)
|
||||
.flex-container
|
||||
if asset.firstAbilityChecked && number == 1
|
||||
input.asset-ability(
|
||||
type='checkbox'
|
||||
name=`attr_assetcheckbox_${asset.abilityId}${number}`
|
||||
checked
|
||||
)
|
||||
else
|
||||
input.asset-ability(
|
||||
type='checkbox'
|
||||
name=`attr_assetcheckbox_${asset.abilityId}${number}`
|
||||
)
|
||||
- var translationAbility = `asset-${key}-ability-${number}`
|
||||
.asset-ability
|
||||
p(data-i18n=translationAbility)=locals.translations[translationAbility]
|
||||
if asset.abilityWriteIn
|
||||
if asset.abilityWriteIn.number == number
|
||||
- var translationAbilityWriteIn = `asset-${key}-ability-${number}-write-in`
|
||||
.asset-ability-write-in(data-i18n=translationAbilityWriteIn)=locals.translations[translationAbilityWriteIn]
|
||||
input.border-bottom.no-border(type='text' name=`attr_asset${asset.abilityWriteIn.name}` value='')
|
||||
if asset.list && number == asset.list.ability
|
||||
- var currentListItem = 1
|
||||
ul
|
||||
while currentListItem <= asset.list.number
|
||||
- var translationId = `asset-${key}-ability-${number}-list-${currentListItem++}`
|
||||
li(data-i18n=translationId)=locals.translations[translationId]
|
||||
|
||||
mixin write-in-input(key)
|
||||
.asset-write-in.asset-name(
|
||||
data-i18n=`asset-write-in-${key}`
|
||||
)=locals.translations[`asset-write-in-${key}`]
|
||||
|
||||
mixin description(asset, type, key)
|
||||
if asset.description || asset.writeIn
|
||||
.asset-description
|
||||
if key === 'blade-bound'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetpathnameinput' value='')
|
||||
else if key === 'banner-sworn'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetpathnameinput' value='')
|
||||
else if key === 'devotant'
|
||||
+write-in-input(`${key}-1`)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetgodsnameinput' value='')
|
||||
+write-in-input(`${key}-2`)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetstatinput' value='')
|
||||
else if key === 'empowered'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assettitleinput' value='')
|
||||
else if key === 'wright'
|
||||
+write-in-input(key)
|
||||
input.border-bottom.no-border(type='text' name='attr_assetspecialityinput' value='')
|
||||
if asset.description
|
||||
- var translationDesc = `asset-description-${key}`
|
||||
.asset-description-text(data-i18n=translationDesc)=locals.translations[translationDesc]
|
||||
|
||||
mixin track(number, name)
|
||||
.asset-track-wrapper
|
||||
- var currentTrack = 0
|
||||
- var tranformedName = name.replace('-', '')
|
||||
while currentTrack <= number
|
||||
.asset-track-box
|
||||
if currentTrack == 0
|
||||
.asset-track-box-display=0
|
||||
else
|
||||
.asset-track-box-display=`+ ${currentTrack}`
|
||||
input(type='radio' name=`attr_assettrack_${tranformedName}` value=`${currentTrack}`)
|
||||
- currentTrack++
|
||||
|
||||
mixin combatTalentBuilder
|
||||
input.asset-combat-talent.hide-element(type='checkbox' name='attr_assetcombat-talent')
|
||||
.combat-talent.showhide
|
||||
+assetDropdown('combattalent', 'combatTalents')
|
||||
|
||||
each asset, key in assets.combatTalents
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_assetcombattalentdiv${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
if asset.description
|
||||
.asset-description
|
||||
- var translationDesc = `asset-description-${key}`
|
||||
.asset-description-text(data-i18n=translationDesc)=locals.translations[translationDesc]
|
||||
.flex-wrapper
|
||||
each number in [ 1, 2, 3 ]
|
||||
+ability(asset, number, key)
|
||||
if key === 'ironclad'
|
||||
.asset-track-wrapper.asset-track-wrapper-wordy
|
||||
each track in [ 1, 2 ]
|
||||
- var value = track - 1
|
||||
.asset-track-box
|
||||
.asset-track-box-display=locals.translations[`asset-ironclad-track-${track}`]
|
||||
input(type='radio' name='attr_assettrack_ironclad' value=`${value}`)
|
||||
|
||||
mixin companionBuilder
|
||||
- var assetType = 'companion'
|
||||
input.asset-companion.hide-element(type='checkbox' name=`attr_asset${assetType}`)
|
||||
.companion.showhide
|
||||
+assetDropdown(assetType, 'companions')
|
||||
|
||||
each asset, key in assets.companions
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
.asset-description
|
||||
- var translationDesc = `asset-description-${key}`
|
||||
.asset-write-in.asset-name(data-i18n='asset-companion-name')=locals.translations['asset-companion-name']
|
||||
input.border-bottom.no-border(type='text' name='attr_assetname' value='')
|
||||
.asset-description-text(data-i18n=translationDesc)=locals.translations[translationDesc]
|
||||
.flex-wrapper
|
||||
each ability in [ 1, 2, 3 ]
|
||||
+ability(asset, ability, key)
|
||||
.asset-track-wrapper
|
||||
- var healthValue = 0
|
||||
while healthValue <= asset.health
|
||||
- var value = healthValue++
|
||||
.asset-track-box
|
||||
if value == 0
|
||||
.asset-track-box-display=value
|
||||
else
|
||||
.asset-track-box-display=`+ ${value}`
|
||||
input(type='radio' name=`attr_assettrack_${key}` value=`${value}`)
|
||||
|
||||
mixin ritualBuilder
|
||||
- var assetType = 'ritual'
|
||||
input.asset-ritual.hide-element(type='checkbox' name=`attr_asset${assetType}`)
|
||||
.ritual.showhide
|
||||
+assetDropdown(assetType, 'rituals')
|
||||
|
||||
each asset, key in assets.rituals
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
.flex-wrapper
|
||||
each ability in [ 1, 2, 3 ]
|
||||
+ability(asset, ability, key)
|
||||
if asset.track
|
||||
+track(asset.track, key)
|
||||
|
||||
mixin pathBuilder
|
||||
- var assetType = 'path'
|
||||
input.asset-path.hide-element(type='checkbox' name=`attr_asset${assetType}`)
|
||||
.path.showhide
|
||||
+assetDropdown(assetType, 'paths')
|
||||
|
||||
each asset, key in assets.paths
|
||||
input(class=`hide-element ${key}` type='checkbox' name=`attr_asset${assetType}div${key}`)
|
||||
div(class=`hide-element ${key}`)
|
||||
+description(asset, assetType, key)
|
||||
.flex-wrapper
|
||||
each ability in [ 1, 2, 3 ]
|
||||
+ability(asset, ability, key)
|
||||
if asset.track
|
||||
+track(asset.track, key)
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
include ./asset-custom
|
||||
include ./asset-builder
|
||||
|
||||
|
||||
mixin assets()
|
||||
.assets
|
||||
fieldset.repeating_assets.fixed-width
|
||||
.asset
|
||||
.asset-header
|
||||
select.asset-type-dropdown(name='attr_assettype')
|
||||
- var types = ['companion','path','combat-talent','ritual','custom']
|
||||
- var defaultDropdown = 'asset-dropdown-default'
|
||||
option(
|
||||
data-i18n=defaultDropdown
|
||||
value=''
|
||||
disabled=''
|
||||
selected=''
|
||||
)=locals.translations[defaultDropdown]
|
||||
each value in types
|
||||
- var translationValue = `asset-type-${value}`
|
||||
option(data-i18n=translationValue value=value)=locals.translations[translationValue]
|
||||
+companionBuilder
|
||||
+pathBuilder
|
||||
+combatTalentBuilder
|
||||
+ritualBuilder
|
||||
include ./asset-custom
|
||||
include ./asset-builder
|
||||
|
||||
|
||||
mixin assets()
|
||||
.assets
|
||||
fieldset.repeating_assets.fixed-width
|
||||
.asset
|
||||
.asset-header
|
||||
select.asset-type-dropdown(name='attr_assettype')
|
||||
- var types = ['companion','path','combat-talent','ritual','custom']
|
||||
- var defaultDropdown = 'asset-dropdown-default'
|
||||
option(
|
||||
data-i18n=defaultDropdown
|
||||
value=''
|
||||
disabled=''
|
||||
selected=''
|
||||
)=locals.translations[defaultDropdown]
|
||||
each value in types
|
||||
- var translationValue = `asset-type-${value}`
|
||||
option(data-i18n=translationValue value=value)=locals.translations[translationValue]
|
||||
+companionBuilder
|
||||
+pathBuilder
|
||||
+combatTalentBuilder
|
||||
+ritualBuilder
|
||||
+customAssets
|
||||
@@ -1,30 +1,30 @@
|
||||
- var track = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
include ../progress/mixins/box
|
||||
|
||||
input.optional-track-failures.hide-element(type='checkbox' name='attr_optional_track_failures' checked)
|
||||
div.optional-track-failures.showhide
|
||||
h3.divide(data-i18n='page-summary-failures')=locals.translations['page-summary-failures']
|
||||
.misses-track
|
||||
.progress-row
|
||||
div
|
||||
label.clear-miss
|
||||
input(class="clear-miss hide" type="checkbox" name="attr_clear_misses")
|
||||
div.failure-btn-div(data-i18n='clear-btn')=locals.translations['clear-btn']
|
||||
each index in track
|
||||
+progressBoxComplex(`attr_miss_${index}`)
|
||||
div
|
||||
label.btn
|
||||
button(
|
||||
type="roll"
|
||||
class='hide'
|
||||
name="rollMisses"
|
||||
value="&{template:ironsworn_progress} {{progress_type=Failures}} {{header=@{character_name} <em>Learn From Your Failures</em> }} {{progress=[[@{misses-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}"
|
||||
)
|
||||
div.failure-btn-div(data-i18n='failures-learn')=locals.translations['failures-learn']
|
||||
input(
|
||||
type="text"
|
||||
class="hide-element"
|
||||
name="attr_misses-filled"
|
||||
value="floor((@{miss_0}+@{miss_1}+@{miss_2}+@{miss_3}+@{miss_4}+@{miss_5}+@{miss_6}+@{miss_7}+@{miss_8}+@{miss_9})/4)"
|
||||
disabled="true"
|
||||
- var track = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
include ../progress/mixins/box
|
||||
|
||||
input.optional-track-failures.hide-element(type='checkbox' name='attr_optional_track_failures' checked)
|
||||
div.optional-track-failures.showhide
|
||||
h3.divide(data-i18n='page-summary-failures')=locals.translations['page-summary-failures']
|
||||
.misses-track
|
||||
.progress-row
|
||||
div
|
||||
label.clear-miss
|
||||
input(class="clear-miss hide" type="checkbox" name="attr_clear_misses")
|
||||
div.failure-btn-div(data-i18n='clear-btn')=locals.translations['clear-btn']
|
||||
each index in track
|
||||
+progressBoxComplex(`attr_miss_${index}`)
|
||||
div
|
||||
label.btn
|
||||
button(
|
||||
type="roll"
|
||||
class='hide'
|
||||
name="rollMisses"
|
||||
value="&{template:ironsworn_progress} {{progress_type=Failures}} {{header=@{character_name} <em>Learn From Your Failures</em> }} {{progress=[[@{misses-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}"
|
||||
)
|
||||
div.failure-btn-div(data-i18n='failures-learn')=locals.translations['failures-learn']
|
||||
input(
|
||||
type="text"
|
||||
class="hide-element"
|
||||
name="attr_misses-filled"
|
||||
value="floor((@{miss_0}+@{miss_1}+@{miss_2}+@{miss_3}+@{miss_4}+@{miss_5}+@{miss_6}+@{miss_7}+@{miss_8}+@{miss_9})/4)"
|
||||
disabled="true"
|
||||
)
|
||||
@@ -1,147 +1,147 @@
|
||||
mixin progressRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=opts.title
|
||||
name=`roll_${opts.name}`
|
||||
class=visibility
|
||||
value=`&{template:ironsworn_progress} {{header=@{character_name}}} {{progress_name=${locals.translations[opts.title]}}} {{progress=[[?{Filled Progress|0}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}`
|
||||
)
|
||||
|
||||
mixin oracleRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=opts.title
|
||||
name=`roll_${opts.name}`
|
||||
class=visibility
|
||||
value=`&{template:${opts.type}} {{header=${locals.translations[opts.title]}}} {{${opts.name}=[[d100]]}}`
|
||||
)
|
||||
|
||||
mixin discoverASiteRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=opts.title
|
||||
name=`roll_${opts.name}`
|
||||
class=visibility
|
||||
value=`&{template:ironsworn_moves} {{header=${locals.translations[opts.title]}}} {{${opts.name}=[[2d10kl1]]}}`
|
||||
)
|
||||
|
||||
mixin rarityRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{rarityAction=[[d6+${opts.stat}+(?{Modifier|0})]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}} {{rarityDie6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{rarityDie5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{rarityDie1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}}`
|
||||
)
|
||||
|
||||
mixin owlRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{action=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{owl=[[?{Owl Companion|No,0|Yes,?{Owl's Health&#124;0&#125;}]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}+(?{Owl Companion})]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}}`
|
||||
)
|
||||
|
||||
mixin delveTheDepthsRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{delveTheDepths=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}} {{revealADangerButton=[Reveal A Danger](~@{character_name}|revealADanger_oracle)}} {{findAnOpportunityButton=[Find An Opportunity](~@{character_name}|findAnOpportunity_oracle)}} {{delveTheDepthsTableButton=[Roll on the Table](~@{character_name}|delveTheDepthsTableRoll)}}`
|
||||
)
|
||||
|
||||
mixin delveTheDepthsTableRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}TableRoll`
|
||||
value!=`&{template:ironsworn_oracles} {{header=${locals.translations[opts.title]}}} {{delveTheDepthsTableRoll=[[d100]]}} {{statValue=[[?{Stat|Edge,1|Shadow,2|Wits,3}]]}}`
|
||||
)
|
||||
|
||||
mixin movesRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{action=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}}`
|
||||
)
|
||||
|
||||
mixin rollLabel
|
||||
label.roll-label Roll
|
||||
block
|
||||
|
||||
mixin rollListLabel
|
||||
label.roll-list-label Roll
|
||||
block
|
||||
|
||||
mixin rollLabelTable
|
||||
label.roll-label Roll on the Table
|
||||
block
|
||||
|
||||
mixin preview(opts, misc)
|
||||
if misc.no_title
|
||||
div
|
||||
else
|
||||
div.move-title.move-preview(data-i18n=opts.title)=locals.translations[opts.title]
|
||||
if opts.roll
|
||||
div.roll-viewer
|
||||
if opts.progress
|
||||
+rollLabel
|
||||
+progressRoll(opts, 'hide-element')
|
||||
else if opts.oracle
|
||||
+rollLabel
|
||||
+oracleRoll(opts, 'hide-element')
|
||||
else if opts.rarity
|
||||
+rollLabel
|
||||
+rarityRoll(opts, 'hide-element')
|
||||
else if opts.owl
|
||||
+rollLabel
|
||||
+owlRoll(opts, 'hide-element')
|
||||
else if opts.discover_a_site
|
||||
+rollLabel
|
||||
+discoverASiteRoll(opts, 'hide-element')
|
||||
else if opts.delve_the_depths
|
||||
+rollLabel
|
||||
+delveTheDepthsRoll(opts, 'hide-element')
|
||||
else
|
||||
+rollLabel
|
||||
+movesRoll(opts, 'hide-element')
|
||||
.move-description
|
||||
block
|
||||
if opts.delve_the_depths
|
||||
+rollLabelTable
|
||||
+delveTheDepthsTableRoll(opts, 'hide-element')
|
||||
.oracle-footer.move-page-footer=opts.page
|
||||
|
||||
mixin container(opts, misc)
|
||||
if misc.visibility
|
||||
div.move-visible
|
||||
+preview(opts, misc)
|
||||
block
|
||||
else
|
||||
input(type='radio' name='attr_move_preview' class=`${opts.class} hide-element` value=opts.radio)
|
||||
div(class=`${opts.class} showhide`)
|
||||
+preview(opts, misc)
|
||||
block
|
||||
|
||||
mixin listButton(opts)
|
||||
if opts.no_quick_roll
|
||||
|
|
||||
else
|
||||
.button-container
|
||||
if opts.progress
|
||||
+progressRoll(opts, 'roll-show')
|
||||
else if opts.oracle
|
||||
+oracleRoll(opts, 'roll-show')
|
||||
else if opts.rarity
|
||||
+rarityRoll(opts, 'roll-show')
|
||||
else if opts.owl
|
||||
+owlRoll(opts, 'roll-show')
|
||||
else if opts.discover_a_site
|
||||
+discoverASiteRoll(opts, 'roll-show')
|
||||
else
|
||||
mixin progressRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=opts.title
|
||||
name=`roll_${opts.name}`
|
||||
class=visibility
|
||||
value=`&{template:ironsworn_progress} {{header=@{character_name}}} {{progress_name=${locals.translations[opts.title]}}} {{progress=[[?{Filled Progress|0}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}`
|
||||
)
|
||||
|
||||
mixin oracleRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=opts.title
|
||||
name=`roll_${opts.name}`
|
||||
class=visibility
|
||||
value=`&{template:${opts.type}} {{header=${locals.translations[opts.title]}}} {{${opts.name}=[[d100]]}}`
|
||||
)
|
||||
|
||||
mixin discoverASiteRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=opts.title
|
||||
name=`roll_${opts.name}`
|
||||
class=visibility
|
||||
value=`&{template:ironsworn_moves} {{header=${locals.translations[opts.title]}}} {{${opts.name}=[[2d10kl1]]}}`
|
||||
)
|
||||
|
||||
mixin rarityRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{rarityAction=[[d6+${opts.stat}+(?{Modifier|0})]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}} {{rarityDie6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{rarityDie5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{rarityDie1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}}`
|
||||
)
|
||||
|
||||
mixin owlRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{action=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{owl=[[?{Owl Companion|No,0|Yes,?{Owl's Health&#124;0&#125;}]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}+(?{Owl Companion})]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}}`
|
||||
)
|
||||
|
||||
mixin delveTheDepthsRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{delveTheDepths=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}} {{revealADangerButton=[Reveal A Danger](~@{character_name}|revealADanger_oracle)}} {{findAnOpportunityButton=[Find An Opportunity](~@{character_name}|findAnOpportunity_oracle)}} {{delveTheDepthsTableButton=[Roll on the Table](~@{character_name}|delveTheDepthsTableRoll)}}`
|
||||
)
|
||||
|
||||
mixin delveTheDepthsTableRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}TableRoll`
|
||||
value!=`&{template:ironsworn_oracles} {{header=${locals.translations[opts.title]}}} {{delveTheDepthsTableRoll=[[d100]]}} {{statValue=[[?{Stat|Edge,1|Shadow,2|Wits,3}]]}}`
|
||||
)
|
||||
|
||||
mixin movesRoll(opts, visibility)
|
||||
button(
|
||||
type="roll"
|
||||
title=`${locals.translations[opts.title]} Move`
|
||||
class=visibility
|
||||
name=`roll_${opts.name}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=${locals.translations[opts.title]}}} {{action=[[{d6+${opts.stat}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate2=[[2+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate3=[[3+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate4=[[4+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate5=[[5+${opts.stat_repeat}+(?{Modifier|0})]]}} {{negate6=[[6+${opts.stat_repeat}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[${opts.stat_repeat}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[${opts.stat_repeat}]]}}`
|
||||
)
|
||||
|
||||
mixin rollLabel
|
||||
label.roll-label Roll
|
||||
block
|
||||
|
||||
mixin rollListLabel
|
||||
label.roll-list-label Roll
|
||||
block
|
||||
|
||||
mixin rollLabelTable
|
||||
label.roll-label Roll on the Table
|
||||
block
|
||||
|
||||
mixin preview(opts, misc)
|
||||
if misc.no_title
|
||||
div
|
||||
else
|
||||
div.move-title.move-preview(data-i18n=opts.title)=locals.translations[opts.title]
|
||||
if opts.roll
|
||||
div.roll-viewer
|
||||
if opts.progress
|
||||
+rollLabel
|
||||
+progressRoll(opts, 'hide-element')
|
||||
else if opts.oracle
|
||||
+rollLabel
|
||||
+oracleRoll(opts, 'hide-element')
|
||||
else if opts.rarity
|
||||
+rollLabel
|
||||
+rarityRoll(opts, 'hide-element')
|
||||
else if opts.owl
|
||||
+rollLabel
|
||||
+owlRoll(opts, 'hide-element')
|
||||
else if opts.discover_a_site
|
||||
+rollLabel
|
||||
+discoverASiteRoll(opts, 'hide-element')
|
||||
else if opts.delve_the_depths
|
||||
+rollLabel
|
||||
+delveTheDepthsRoll(opts, 'hide-element')
|
||||
else
|
||||
+rollLabel
|
||||
+movesRoll(opts, 'hide-element')
|
||||
.move-description
|
||||
block
|
||||
if opts.delve_the_depths
|
||||
+rollLabelTable
|
||||
+delveTheDepthsTableRoll(opts, 'hide-element')
|
||||
.oracle-footer.move-page-footer=opts.page
|
||||
|
||||
mixin container(opts, misc)
|
||||
if misc.visibility
|
||||
div.move-visible
|
||||
+preview(opts, misc)
|
||||
block
|
||||
else
|
||||
input(type='radio' name='attr_move_preview' class=`${opts.class} hide-element` value=opts.radio)
|
||||
div(class=`${opts.class} showhide`)
|
||||
+preview(opts, misc)
|
||||
block
|
||||
|
||||
mixin listButton(opts)
|
||||
if opts.no_quick_roll
|
||||
|
|
||||
else
|
||||
.button-container
|
||||
if opts.progress
|
||||
+progressRoll(opts, 'roll-show')
|
||||
else if opts.oracle
|
||||
+oracleRoll(opts, 'roll-show')
|
||||
else if opts.rarity
|
||||
+rarityRoll(opts, 'roll-show')
|
||||
else if opts.owl
|
||||
+owlRoll(opts, 'roll-show')
|
||||
else if opts.discover_a_site
|
||||
+discoverASiteRoll(opts, 'roll-show')
|
||||
else
|
||||
+movesRoll(opts, 'roll-show')
|
||||
@@ -1,26 +1,26 @@
|
||||
include ../content/delve-table
|
||||
include ./container
|
||||
include ./oracle-table
|
||||
include ./standalone-tables
|
||||
include ../../../data/oracles
|
||||
|
||||
mixin moveBuilder(opts, misc)
|
||||
+container(opts, misc)
|
||||
each row in opts.content
|
||||
if row.list
|
||||
ul
|
||||
each item in row.list
|
||||
li(data-i18n=item)!=locals.translations[item]
|
||||
else if row.table
|
||||
+oracleTable(oracles.moves[row.table.group].oracles[row.table.name], 'moves', row.table.group)
|
||||
else if row.depths_table
|
||||
+delveTable
|
||||
else if row.ask_the_oracle
|
||||
+askTheOracle
|
||||
else if row.delve_the_depths
|
||||
+delveTheDepths
|
||||
else if row.h6
|
||||
h6(data-i18n=row.h6)!=locals.translations[row.h6]
|
||||
else
|
||||
p(data-i18n=row.p)!=locals.translations[row.p]
|
||||
|
||||
include ../content/delve-table
|
||||
include ./container
|
||||
include ./oracle-table
|
||||
include ./standalone-tables
|
||||
include ../../../data/oracles
|
||||
|
||||
mixin moveBuilder(opts, misc)
|
||||
+container(opts, misc)
|
||||
each row in opts.content
|
||||
if row.list
|
||||
ul
|
||||
each item in row.list
|
||||
li(data-i18n=item)!=locals.translations[item]
|
||||
else if row.table
|
||||
+oracleTable(oracles.moves[row.table.group].oracles[row.table.name], 'moves', row.table.group)
|
||||
else if row.depths_table
|
||||
+delveTable
|
||||
else if row.ask_the_oracle
|
||||
+askTheOracle
|
||||
else if row.delve_the_depths
|
||||
+delveTheDepths
|
||||
else if row.h6
|
||||
h6(data-i18n=row.h6)!=locals.translations[row.h6]
|
||||
else
|
||||
p(data-i18n=row.p)!=locals.translations[row.p]
|
||||
|
||||
|
||||
@@ -1,68 +1,68 @@
|
||||
include ../../data/group-list
|
||||
include ../../data/scroll-list
|
||||
include ../../data/move-list
|
||||
include ./mixins/move-builder
|
||||
|
||||
|
||||
//- Search Bar
|
||||
input(type='radio' class='hide-element full-move-list' name='attr_move_view' value='1' checked)
|
||||
.full-move-list.showhide
|
||||
//- .search-bar
|
||||
//- input(type='text' class='search-bar' name='attr_move_search' placeholder='Search')
|
||||
//- label.clear-search CLEAR
|
||||
//- input(type='checkbox' class='hide-element' name='attr_clear_search')
|
||||
|
||||
//- List of Moves
|
||||
.move-container
|
||||
input(type='radio' class='hide-element' name='attr_selected_move')
|
||||
each group in moveGroups
|
||||
if group.optional
|
||||
input(type='checkbox' class=`optional-move-${group.optional} hide-element` name=`attr_optional_move_${group.optional}` checked)
|
||||
div(class=`move-group optional-move-${group.optional} hide-element`)
|
||||
.move-group-title
|
||||
h3(data-i18n=group.title)=locals.translations[group.title]
|
||||
each move in group.moves
|
||||
.move-list
|
||||
+listButton(moveList[move.value])
|
||||
label.move
|
||||
input(type='radio' class='hide-element selected-move' name='attr_selected_move' value=move.value)
|
||||
div.move-name(data-i18n=move.name)=locals.translations[move.name]
|
||||
else
|
||||
.move-group
|
||||
.move-group-title
|
||||
h3(data-i18n=group.title)=locals.translations[group.title]
|
||||
each move in group.moves
|
||||
.move-list
|
||||
+listButton(moveList[move.value])
|
||||
label.move
|
||||
input(type='radio' class='hide-element selected-move' name='attr_selected_move' value=move.value)
|
||||
div.move-name(data-i18n=move.name)=locals.translations[move.name]
|
||||
|
||||
//- Move Details
|
||||
input(type='radio' class='hide-element move-preview' name='attr_move_view' value='2')
|
||||
.move-preview.showhide
|
||||
.preview-bar
|
||||
//- .search-preview-bar
|
||||
//- input(type='text' class='search-preview-bar' name='attr_move_search' placeholder='Search')
|
||||
//- label.clear-search CLEAR
|
||||
//- input(type='checkbox' class='hide-element' name='attr_clear_search')
|
||||
.close-bar
|
||||
label.close-preview CLOSE PREVIEW
|
||||
input(type='checkbox' class='hide-element' name='attr_close_move_preview')
|
||||
.preview-container
|
||||
.move-scroll-list
|
||||
each group in moveGroupsScroll
|
||||
.move-group-scroll
|
||||
.move-group-title
|
||||
h3(data-i18n=group.title)=locals.translations[group.title]
|
||||
each move in group.moves
|
||||
.move-list
|
||||
label.move
|
||||
input(type='radio' class='hide-element' name='attr_selected_move' value=move.value)
|
||||
//- input(type='checkbox' class='hide-element move-highlight' name=`attr_${move.value}_highlight`)
|
||||
div.move-name(data-i18n=move.name)=locals.translations[move.name]
|
||||
|
||||
//- Move Previews
|
||||
.move-preview-container
|
||||
each move in moveList
|
||||
+moveBuilder(move, false)
|
||||
include ../../data/group-list
|
||||
include ../../data/scroll-list
|
||||
include ../../data/move-list
|
||||
include ./mixins/move-builder
|
||||
|
||||
|
||||
//- Search Bar
|
||||
input(type='radio' class='hide-element full-move-list' name='attr_move_view' value='1' checked)
|
||||
.full-move-list.showhide
|
||||
//- .search-bar
|
||||
//- input(type='text' class='search-bar' name='attr_move_search' placeholder='Search')
|
||||
//- label.clear-search CLEAR
|
||||
//- input(type='checkbox' class='hide-element' name='attr_clear_search')
|
||||
|
||||
//- List of Moves
|
||||
.move-container
|
||||
input(type='radio' class='hide-element' name='attr_selected_move')
|
||||
each group in moveGroups
|
||||
if group.optional
|
||||
input(type='checkbox' class=`optional-move-${group.optional} hide-element` name=`attr_optional_move_${group.optional}` checked)
|
||||
div(class=`move-group optional-move-${group.optional} hide-element`)
|
||||
.move-group-title
|
||||
h3(data-i18n=group.title)=locals.translations[group.title]
|
||||
each move in group.moves
|
||||
.move-list
|
||||
+listButton(moveList[move.value])
|
||||
label.move
|
||||
input(type='radio' class='hide-element selected-move' name='attr_selected_move' value=move.value)
|
||||
div.move-name(data-i18n=move.name)=locals.translations[move.name]
|
||||
else
|
||||
.move-group
|
||||
.move-group-title
|
||||
h3(data-i18n=group.title)=locals.translations[group.title]
|
||||
each move in group.moves
|
||||
.move-list
|
||||
+listButton(moveList[move.value])
|
||||
label.move
|
||||
input(type='radio' class='hide-element selected-move' name='attr_selected_move' value=move.value)
|
||||
div.move-name(data-i18n=move.name)=locals.translations[move.name]
|
||||
|
||||
//- Move Details
|
||||
input(type='radio' class='hide-element move-preview' name='attr_move_view' value='2')
|
||||
.move-preview.showhide
|
||||
.preview-bar
|
||||
//- .search-preview-bar
|
||||
//- input(type='text' class='search-preview-bar' name='attr_move_search' placeholder='Search')
|
||||
//- label.clear-search CLEAR
|
||||
//- input(type='checkbox' class='hide-element' name='attr_clear_search')
|
||||
.close-bar
|
||||
label.close-preview CLOSE PREVIEW
|
||||
input(type='checkbox' class='hide-element' name='attr_close_move_preview')
|
||||
.preview-container
|
||||
.move-scroll-list
|
||||
each group in moveGroupsScroll
|
||||
.move-group-scroll
|
||||
.move-group-title
|
||||
h3(data-i18n=group.title)=locals.translations[group.title]
|
||||
each move in group.moves
|
||||
.move-list
|
||||
label.move
|
||||
input(type='radio' class='hide-element' name='attr_selected_move' value=move.value)
|
||||
//- input(type='checkbox' class='hide-element move-highlight' name=`attr_${move.value}_highlight`)
|
||||
div.move-name(data-i18n=move.name)=locals.translations[move.name]
|
||||
|
||||
//- Move Previews
|
||||
.move-preview-container
|
||||
each move in moveList
|
||||
+moveBuilder(move, false)
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
include ../../data/nav
|
||||
|
||||
mixin navBar(sheetType)
|
||||
div.nav-bar
|
||||
if sheetType == 'shared'
|
||||
- var rows = sharedRows
|
||||
else
|
||||
- var rows = charRows
|
||||
each row in rows
|
||||
div.nav-row
|
||||
each page in row.pages
|
||||
if page.optional
|
||||
input(type='checkbox' class=`optional-nav-${page.optional} hide-element` name=`attr_optional_nav_${page.optional}` checked)
|
||||
div(class=`nav-child optional-nav-${page.optional} showhide`)
|
||||
label.page-label
|
||||
if page.checked
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id checked)
|
||||
else
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id)
|
||||
- var translation = `nav-${page.text}`
|
||||
div.page-button-back(data-i18n=translation)=locals.translations[translation]
|
||||
else
|
||||
div.nav-child
|
||||
label.page-label
|
||||
if page.checked
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id checked)
|
||||
else
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id)
|
||||
- var translation = `nav-${page.text}`
|
||||
div.page-button-back(data-i18n=translation)=locals.translations[translation]
|
||||
include ../../data/nav
|
||||
|
||||
mixin navBar(sheetType)
|
||||
div.nav-bar
|
||||
if sheetType == 'shared'
|
||||
- var rows = sharedRows
|
||||
else
|
||||
- var rows = charRows
|
||||
each row in rows
|
||||
div.nav-row
|
||||
each page in row.pages
|
||||
if page.optional
|
||||
input(type='checkbox' class=`optional-nav-${page.optional} hide-element` name=`attr_optional_nav_${page.optional}` checked)
|
||||
div(class=`nav-child optional-nav-${page.optional} showhide`)
|
||||
label.page-label
|
||||
if page.checked
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id checked)
|
||||
else
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id)
|
||||
- var translation = `nav-${page.text}`
|
||||
div.page-button-back(data-i18n=translation)=locals.translations[translation]
|
||||
else
|
||||
div.nav-child
|
||||
label.page-label
|
||||
if page.checked
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id checked)
|
||||
else
|
||||
input(type='radio' name=`attr_${sheetType}_page_button` class='hide-element page-button' value=page.id)
|
||||
- var translation = `nav-${page.text}`
|
||||
div.page-button-back(data-i18n=translation)=locals.translations[translation]
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
- var track = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten' ]
|
||||
- var challenge = [ 'one', 'two', 'three', 'four' ]
|
||||
include ../../data/difficulties
|
||||
include ./mixins/box
|
||||
|
||||
fieldset.repeating_progress
|
||||
div
|
||||
br
|
||||
.progress-holder
|
||||
input.progress-name(type='text' name='attr_name')
|
||||
label.challenge-show
|
||||
input(type='checkbox' class='hide-element challenge-show-button' name='attr_challenge-show-button')
|
||||
.challenge-show-back(data-i18n='progress-challenge')=locals.translations['progress-challenge']
|
||||
.progress-header
|
||||
each difficulty, index in difficulties
|
||||
label.difficulty
|
||||
if difficulty.checked
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index checked)
|
||||
else
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index)
|
||||
h5=difficulty.text
|
||||
+progressTrack(track, 'name')
|
||||
.progress-container
|
||||
input(type='checkbox' class='hide-element challenge-show' name='attr_challenge-show')
|
||||
.challenge-row.showhide
|
||||
label.challenge-label COUNTDOWN
|
||||
each index in challenge
|
||||
label.challenge-box
|
||||
input.challenge.hide-element(type='checkbox' class='hide-element' name=`attr_countdown-${index}`)
|
||||
.challenge-fill
|
||||
|
||||
- var track = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten' ]
|
||||
- var challenge = [ 'one', 'two', 'three', 'four' ]
|
||||
include ../../data/difficulties
|
||||
include ./mixins/box
|
||||
|
||||
fieldset.repeating_progress
|
||||
div
|
||||
br
|
||||
.progress-holder
|
||||
input.progress-name(type='text' name='attr_name')
|
||||
label.challenge-show
|
||||
input(type='checkbox' class='hide-element challenge-show-button' name='attr_challenge-show-button')
|
||||
.challenge-show-back(data-i18n='progress-challenge')=locals.translations['progress-challenge']
|
||||
.progress-header
|
||||
each difficulty, index in difficulties
|
||||
label.difficulty
|
||||
if difficulty.checked
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index checked)
|
||||
else
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index)
|
||||
h5=difficulty.text
|
||||
+progressTrack(track, 'name')
|
||||
.progress-container
|
||||
input(type='checkbox' class='hide-element challenge-show' name='attr_challenge-show')
|
||||
.challenge-row.showhide
|
||||
label.challenge-label COUNTDOWN
|
||||
each index in challenge
|
||||
label.challenge-box
|
||||
input.challenge.hide-element(type='checkbox' class='hide-element' name=`attr_countdown-${index}`)
|
||||
.challenge-fill
|
||||
|
||||
|
||||
@@ -1,58 +1,58 @@
|
||||
- var charResources = [ 'health', 'spirit', 'supply']
|
||||
- var sharedResources = [ 'supply' ]
|
||||
- var standard = [ 5, 4, 3, 2, 1, 0 ]
|
||||
- var inverse = [ 0, 1, 2, 3, 4, 5 ]
|
||||
|
||||
mixin options(trackValues)
|
||||
each val in trackValues
|
||||
option(value=val)=`+${val}`
|
||||
|
||||
mixin dropdowns(resource)
|
||||
div.resource
|
||||
label.roll-resource-label
|
||||
button(
|
||||
type="roll"
|
||||
title=`@{roll${resource}}`
|
||||
class='hide-element'
|
||||
name=`roll${resource}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=roll +${resource}}} {{action=[[{d6+@{${resource}}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+@{${resource}}+(?{Modifier|0})]]}} {{negate2=[[2+@{${resource}}+(?{Modifier|0})]]}} {{negate3=[[3+@{${resource}}+(?{Modifier|0})]]}} {{negate4=[[4+@{${resource}}+(?{Modifier|0})]]}} {{negate5=[[5+@{${resource}}+(?{Modifier|0})]]}} {{negate6=[[6+@{${resource}}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[@{${resource}}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[@{${resource}}]]}}`
|
||||
)
|
||||
div(data-i18n=`resource-${resource}`)=locals.translations[`resource-${resource}`]
|
||||
select(class="resource-value" name=`attr_${resource}`)
|
||||
if resource == 'wealth'
|
||||
- var trackValues = inverse
|
||||
+options(inverse)
|
||||
else
|
||||
- var trackValues = standard
|
||||
+options(standard)
|
||||
|
||||
mixin character(resources)
|
||||
div.resources
|
||||
div.resource
|
||||
h2.resource-title(data-i18n='character-name')=locals.translations['character-name']
|
||||
div.health-status-box
|
||||
input(type='text' class="resource-value character-name" name="attr_character_name" placeholder='Character Name')
|
||||
|
||||
each resource in resources
|
||||
+dropdowns(resource)
|
||||
|
||||
div.resource
|
||||
h2.resource-title(data-i18n='character-experience')=locals.translations['character-experience']
|
||||
div.health-status-box
|
||||
input(type='text' class="resource-value" name="attr_xp" value="0")
|
||||
h2.resource-title(data-i18n='character-experience-spent')=locals.translations['character-experience-spent']
|
||||
div.health-status-box
|
||||
input(type='text' class="resource-value" name="attr_total_xp" value="0")
|
||||
|
||||
mixin shared(resources)
|
||||
div.resources
|
||||
each resource in resources
|
||||
+dropdowns(resource)
|
||||
|
||||
mixin resources(sheetType)
|
||||
if sheetType == 'shared'
|
||||
- var resources = sharedResources
|
||||
+shared(resources)
|
||||
else
|
||||
- var resources = charResources
|
||||
- var charResources = [ 'health', 'spirit', 'supply']
|
||||
- var sharedResources = [ 'supply' ]
|
||||
- var standard = [ 5, 4, 3, 2, 1, 0 ]
|
||||
- var inverse = [ 0, 1, 2, 3, 4, 5 ]
|
||||
|
||||
mixin options(trackValues)
|
||||
each val in trackValues
|
||||
option(value=val)=`+${val}`
|
||||
|
||||
mixin dropdowns(resource)
|
||||
div.resource
|
||||
label.roll-resource-label
|
||||
button(
|
||||
type="roll"
|
||||
title=`@{roll${resource}}`
|
||||
class='hide-element'
|
||||
name=`roll${resource}`
|
||||
value!=`&{template:ironsworn_moves} {{header=@{character_name}}} {{name=roll +${resource}}} {{action=[[{d6+@{${resource}}+(?{Modifier|0}),{10}}kl1]]}} {{negate1=[[1+@{${resource}}+(?{Modifier|0})]]}} {{negate2=[[2+@{${resource}}+(?{Modifier|0})]]}} {{negate3=[[3+@{${resource}}+(?{Modifier|0})]]}} {{negate4=[[4+@{${resource}}+(?{Modifier|0})]]}} {{negate5=[[5+@{${resource}}+(?{Modifier|0})]]}} {{negate6=[[6+@{${resource}}+(?{Modifier|0})]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}} {{momentum=[[@{momentum}]]}} {{modifiers=[[@{${resource}}+(?{Modifier|0})]]}} {{add=[[(?{Modifier|0})]]}} {{stat=[[@{${resource}}]]}}`
|
||||
)
|
||||
div(data-i18n=`resource-${resource}`)=locals.translations[`resource-${resource}`]
|
||||
select(class="resource-value" name=`attr_${resource}`)
|
||||
if resource == 'wealth'
|
||||
- var trackValues = inverse
|
||||
+options(inverse)
|
||||
else
|
||||
- var trackValues = standard
|
||||
+options(standard)
|
||||
|
||||
mixin character(resources)
|
||||
div.resources
|
||||
div.resource
|
||||
h2.resource-title(data-i18n='character-name')=locals.translations['character-name']
|
||||
div.health-status-box
|
||||
input(type='text' class="resource-value character-name" name="attr_character_name" placeholder='Character Name')
|
||||
|
||||
each resource in resources
|
||||
+dropdowns(resource)
|
||||
|
||||
div.resource
|
||||
h2.resource-title(data-i18n='character-experience')=locals.translations['character-experience']
|
||||
div.health-status-box
|
||||
input(type='text' class="resource-value" name="attr_xp" value="0")
|
||||
h2.resource-title(data-i18n='character-experience-spent')=locals.translations['character-experience-spent']
|
||||
div.health-status-box
|
||||
input(type='text' class="resource-value" name="attr_total_xp" value="0")
|
||||
|
||||
mixin shared(resources)
|
||||
div.resources
|
||||
each resource in resources
|
||||
+dropdowns(resource)
|
||||
|
||||
mixin resources(sheetType)
|
||||
if sheetType == 'shared'
|
||||
- var resources = sharedResources
|
||||
+shared(resources)
|
||||
else
|
||||
- var resources = charResources
|
||||
+character(resources)
|
||||
@@ -1,125 +1,125 @@
|
||||
include ../../data/difficulties
|
||||
include ../progress/mixins/box
|
||||
|
||||
- var track = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
- var menaceTrack = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
|
||||
- var legacyVows = [ 1, 2, 3, 4, 5 ]
|
||||
|
||||
mixin input(id, nameValue)
|
||||
input(
|
||||
type="text"
|
||||
class=id
|
||||
data-i18n-placeholder=id
|
||||
placeholder=locals.translations[id]
|
||||
name=nameValue
|
||||
)
|
||||
|
||||
mixin vowLegacy(number)
|
||||
+input("vow-name", `attr_vow${number}_name`)
|
||||
|
||||
input.optional-vow-threat.hide-element(type='checkbox' name=`attr_optional_vow_threat_${number}` checked)
|
||||
.optional-vow-threat.showhide
|
||||
.threat-container
|
||||
.threat-header
|
||||
+input("vow-threat", `attr_vow${number}_threat-name`)
|
||||
label.menace-show
|
||||
input(type='checkbox' class='hide-element menace-show-button' name=`attr_vow${number}_menace-show-button`)
|
||||
.menace-show-back(data-i18n='vow-menace')=locals.translations['vow-menace']
|
||||
input(type='checkbox' class='hide-element menace-show' name=`attr_vow${number}_menace-show`)
|
||||
.menace-row.showhide
|
||||
each index in menaceTrack
|
||||
label.menace-box
|
||||
input.menace-vow.hide-element(type='checkbox' class='hide-element' name=`attr_vow${number}-${index}-threat`)
|
||||
.menace-fill
|
||||
|
||||
div.vows-header
|
||||
each difficulty, index in difficulties
|
||||
label.difficulty
|
||||
if difficulty.checked
|
||||
input(type="radio" class="hide-element" name=`attr_vow${number}_rank` value=index checked)
|
||||
else
|
||||
input(type="radio" class="hide-element" name=`attr_vow${number}_rank` value=index)
|
||||
- var translation = `difficulty-${difficulty.text}`
|
||||
h5(data-i18n=translation)=locals.translations[translation]
|
||||
|
||||
div.vow
|
||||
.progress-row
|
||||
div
|
||||
label.btn
|
||||
input(class="mark-vow hide" type="checkbox" name=`attr_mark_progress_${number}`)
|
||||
div.btn-div(data-i18n='vow-mark')=locals.translations['vow-mark']
|
||||
label.btn
|
||||
input(class="clear-vow hide" type="checkbox" name=`attr_clear_progress_${number}`)
|
||||
div.btn-div(data-i18n='clear-btn')=locals.translations['clear-btn']
|
||||
each index in track
|
||||
+progressBoxComplex(`attr_vow${number}-${index}`)
|
||||
div
|
||||
label.btn
|
||||
button(
|
||||
type="roll"
|
||||
class='hide'
|
||||
name="rollVow"
|
||||
value=`&{template:ironsworn_progress} {{progress_type=Vow}} {{header=@{character_name} <em>Fulfill Your Vow</em> }} {{progress_name=@{vow${number}_name}}} {{progress=[[@{vow${number}-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}`
|
||||
)
|
||||
div.btn-div(data-i18n='vow-fulfill')=locals.translations['vow-fulfill']
|
||||
input(
|
||||
type="text"
|
||||
class="hide-element"
|
||||
name=`attr_vow${number}-filled`
|
||||
value=`floor((@{vow${number}-0}+@{vow${number}-1}+@{vow${number}-2}+@{vow${number}-3}+@{vow${number}-4}+@{vow${number}-5}+@{vow${number}-6}+@{vow${number}-7}+@{vow${number}-8}+@{vow${number}-9})/4)`
|
||||
disabled
|
||||
)
|
||||
|
||||
mixin repeatingVow()
|
||||
+input("vow-name", 'attr_vow_name')
|
||||
|
||||
.threat-container
|
||||
.threat-header
|
||||
+input("vow-threat", 'attr_threat-name')
|
||||
label.menace-show
|
||||
input(type='checkbox' class='hide-element menace-show-button' name=`attr_menace-show-button`)
|
||||
.menace-show-back(data-i18n='vow-menace')=locals.translations['vow-menace']
|
||||
input(type='checkbox' class='hide-element menace-show' name=`attr_menace-show`)
|
||||
.menace-row.showhide
|
||||
each index in menaceTrack
|
||||
label.menace-box
|
||||
input.menace-vow.hide-element(type='checkbox' class='hide-element' name=`attr_menace-${index}`)
|
||||
.menace-fill
|
||||
|
||||
div.vows-header
|
||||
each difficulty, index in difficulties
|
||||
label.difficulty
|
||||
if difficulty.checked
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index checked)
|
||||
else
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index)
|
||||
- var translation = `difficulty-${difficulty.text}`
|
||||
h5(data-i18n=translation)=locals.translations[translation]
|
||||
|
||||
div.vow
|
||||
.progress-row
|
||||
div
|
||||
label.btn
|
||||
input(class="mark-vow hide" type="checkbox" name="attr_mark_progress")
|
||||
div.btn-div(data-i18n='vow-mark')=locals.translations['vow-mark']
|
||||
label.btn
|
||||
input(class="clear-vow hide" type="checkbox" name="attr_clear_progress")
|
||||
div.btn-div(data-i18n='clear-btn')=locals.translations['clear-btn']
|
||||
each index in track
|
||||
+progressBoxComplex(`attr_progress_${index}`)
|
||||
div
|
||||
label.btn
|
||||
button(
|
||||
type="roll"
|
||||
class='hide'
|
||||
name="rollVow"
|
||||
value="&{template:ironsworn_progress} {{progress_type=Vow}} {{header=@{character_name} <em>Fulfill Your Vow</em> }} {{progress_name=@{vow_name}}} {{progress=[[@{vow-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}"
|
||||
)
|
||||
div.btn-div(data-i18n='vow-fulfill')=locals.translations['vow-fulfill']
|
||||
input(
|
||||
type="text"
|
||||
class="hide-element"
|
||||
name="attr_vow-filled"
|
||||
value="floor((@{progress_0}+@{progress_1}+@{progress_2}+@{progress_3}+@{progress_4}+@{progress_5}+@{progress_6}+@{progress_7}+@{progress_8}+@{progress_9})/4)"
|
||||
disabled
|
||||
include ../../data/difficulties
|
||||
include ../progress/mixins/box
|
||||
|
||||
- var track = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
- var menaceTrack = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
|
||||
- var legacyVows = [ 1, 2, 3, 4, 5 ]
|
||||
|
||||
mixin input(id, nameValue)
|
||||
input(
|
||||
type="text"
|
||||
class=id
|
||||
data-i18n-placeholder=id
|
||||
placeholder=locals.translations[id]
|
||||
name=nameValue
|
||||
)
|
||||
|
||||
mixin vowLegacy(number)
|
||||
+input("vow-name", `attr_vow${number}_name`)
|
||||
|
||||
input.optional-vow-threat.hide-element(type='checkbox' name=`attr_optional_vow_threat_${number}` checked)
|
||||
.optional-vow-threat.showhide
|
||||
.threat-container
|
||||
.threat-header
|
||||
+input("vow-threat", `attr_vow${number}_threat-name`)
|
||||
label.menace-show
|
||||
input(type='checkbox' class='hide-element menace-show-button' name=`attr_vow${number}_menace-show-button`)
|
||||
.menace-show-back(data-i18n='vow-menace')=locals.translations['vow-menace']
|
||||
input(type='checkbox' class='hide-element menace-show' name=`attr_vow${number}_menace-show`)
|
||||
.menace-row.showhide
|
||||
each index in menaceTrack
|
||||
label.menace-box
|
||||
input.menace-vow.hide-element(type='checkbox' class='hide-element' name=`attr_vow${number}-${index}-threat`)
|
||||
.menace-fill
|
||||
|
||||
div.vows-header
|
||||
each difficulty, index in difficulties
|
||||
label.difficulty
|
||||
if difficulty.checked
|
||||
input(type="radio" class="hide-element" name=`attr_vow${number}_rank` value=index checked)
|
||||
else
|
||||
input(type="radio" class="hide-element" name=`attr_vow${number}_rank` value=index)
|
||||
- var translation = `difficulty-${difficulty.text}`
|
||||
h5(data-i18n=translation)=locals.translations[translation]
|
||||
|
||||
div.vow
|
||||
.progress-row
|
||||
div
|
||||
label.btn
|
||||
input(class="mark-vow hide" type="checkbox" name=`attr_mark_progress_${number}`)
|
||||
div.btn-div(data-i18n='vow-mark')=locals.translations['vow-mark']
|
||||
label.btn
|
||||
input(class="clear-vow hide" type="checkbox" name=`attr_clear_progress_${number}`)
|
||||
div.btn-div(data-i18n='clear-btn')=locals.translations['clear-btn']
|
||||
each index in track
|
||||
+progressBoxComplex(`attr_vow${number}-${index}`)
|
||||
div
|
||||
label.btn
|
||||
button(
|
||||
type="roll"
|
||||
class='hide'
|
||||
name="rollVow"
|
||||
value=`&{template:ironsworn_progress} {{progress_type=Vow}} {{header=@{character_name} <em>Fulfill Your Vow</em> }} {{progress_name=@{vow${number}_name}}} {{progress=[[@{vow${number}-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}`
|
||||
)
|
||||
div.btn-div(data-i18n='vow-fulfill')=locals.translations['vow-fulfill']
|
||||
input(
|
||||
type="text"
|
||||
class="hide-element"
|
||||
name=`attr_vow${number}-filled`
|
||||
value=`floor((@{vow${number}-0}+@{vow${number}-1}+@{vow${number}-2}+@{vow${number}-3}+@{vow${number}-4}+@{vow${number}-5}+@{vow${number}-6}+@{vow${number}-7}+@{vow${number}-8}+@{vow${number}-9})/4)`
|
||||
disabled
|
||||
)
|
||||
|
||||
mixin repeatingVow()
|
||||
+input("vow-name", 'attr_vow_name')
|
||||
|
||||
.threat-container
|
||||
.threat-header
|
||||
+input("vow-threat", 'attr_threat-name')
|
||||
label.menace-show
|
||||
input(type='checkbox' class='hide-element menace-show-button' name=`attr_menace-show-button`)
|
||||
.menace-show-back(data-i18n='vow-menace')=locals.translations['vow-menace']
|
||||
input(type='checkbox' class='hide-element menace-show' name=`attr_menace-show`)
|
||||
.menace-row.showhide
|
||||
each index in menaceTrack
|
||||
label.menace-box
|
||||
input.menace-vow.hide-element(type='checkbox' class='hide-element' name=`attr_menace-${index}`)
|
||||
.menace-fill
|
||||
|
||||
div.vows-header
|
||||
each difficulty, index in difficulties
|
||||
label.difficulty
|
||||
if difficulty.checked
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index checked)
|
||||
else
|
||||
input(type="radio" class="hide-element" name="attr_rank" value=index)
|
||||
- var translation = `difficulty-${difficulty.text}`
|
||||
h5(data-i18n=translation)=locals.translations[translation]
|
||||
|
||||
div.vow
|
||||
.progress-row
|
||||
div
|
||||
label.btn
|
||||
input(class="mark-vow hide" type="checkbox" name="attr_mark_progress")
|
||||
div.btn-div(data-i18n='vow-mark')=locals.translations['vow-mark']
|
||||
label.btn
|
||||
input(class="clear-vow hide" type="checkbox" name="attr_clear_progress")
|
||||
div.btn-div(data-i18n='clear-btn')=locals.translations['clear-btn']
|
||||
each index in track
|
||||
+progressBoxComplex(`attr_progress_${index}`)
|
||||
div
|
||||
label.btn
|
||||
button(
|
||||
type="roll"
|
||||
class='hide'
|
||||
name="rollVow"
|
||||
value="&{template:ironsworn_progress} {{progress_type=Vow}} {{header=@{character_name} <em>Fulfill Your Vow</em> }} {{progress_name=@{vow_name}}} {{progress=[[@{vow-filled}]]}} {{challenge1=[[d10]]}} {{challenge2=[[d10]]}}"
|
||||
)
|
||||
div.btn-div(data-i18n='vow-fulfill')=locals.translations['vow-fulfill']
|
||||
input(
|
||||
type="text"
|
||||
class="hide-element"
|
||||
name="attr_vow-filled"
|
||||
value="floor((@{progress_0}+@{progress_1}+@{progress_2}+@{progress_3}+@{progress_4}+@{progress_5}+@{progress_6}+@{progress_7}+@{progress_8}+@{progress_9})/4)"
|
||||
disabled
|
||||
)
|
||||
@@ -1,23 +1,23 @@
|
||||
include ../../components/debilities/debilities
|
||||
include ../../components/vows/vow-container
|
||||
|
||||
mixin summaryPage
|
||||
div.page-container
|
||||
input(type='radio' name='attr_character_page' class='summary hide-element' value='1' checked)
|
||||
div.summary.showhide
|
||||
include ../../components/stats/character
|
||||
include ../../components/misses/track
|
||||
h3.divide(data-i18n='page-summary-vows')=locals.translations['page-summary-vows']
|
||||
div.vows
|
||||
if sheetType == 'shared'
|
||||
fieldset.repeating_vow
|
||||
+repeatingVow()
|
||||
else
|
||||
div.hide-element
|
||||
each vow in legacyVows
|
||||
+vowLegacy(vow)
|
||||
fieldset.repeating_vow
|
||||
+repeatingVow()
|
||||
h3.divide(data-i18n='page-summary-debilities')=locals.translations['page-summary-debilities']
|
||||
+debilityList({character: true})
|
||||
include ../../components/debilities/debilities
|
||||
include ../../components/vows/vow-container
|
||||
|
||||
mixin summaryPage
|
||||
div.page-container
|
||||
input(type='radio' name='attr_character_page' class='summary hide-element' value='1' checked)
|
||||
div.summary.showhide
|
||||
include ../../components/stats/character
|
||||
include ../../components/misses/track
|
||||
h3.divide(data-i18n='page-summary-vows')=locals.translations['page-summary-vows']
|
||||
div.vows
|
||||
if sheetType == 'shared'
|
||||
fieldset.repeating_vow
|
||||
+repeatingVow()
|
||||
else
|
||||
div.hide-element
|
||||
each vow in legacyVows
|
||||
+vowLegacy(vow)
|
||||
fieldset.repeating_vow
|
||||
+repeatingVow()
|
||||
h3.divide(data-i18n='page-summary-debilities')=locals.translations['page-summary-debilities']
|
||||
+debilityList({character: true})
|
||||
include ../../components/notes/notes
|
||||
@@ -1,31 +1,31 @@
|
||||
input.changelog.hide-element(type='checkbox' name='attr_changelog_2.3.0')
|
||||
.changelog
|
||||
.copy
|
||||
h3 <strong>Version 2.3.0 Release</strong>
|
||||
div Added translation support for oracles. This includes the roll templates.
|
||||
label.close-changelog
|
||||
input(type='checkbox' name=`attr_close_changelog` class='hide-element')
|
||||
div(data-i18n='page-info-close')=locals.translations['page-info-close']
|
||||
|
||||
- var pages = [ 'character', 'shared' ]
|
||||
input(type='checkbox' name='attr_modes_choice' class='modes-show hide-element' checked)
|
||||
div.modes-show.hide-element
|
||||
div.mode-title
|
||||
h2.mode-title(data-i18n='page-select')=locals.translations['page-select']
|
||||
div.modes
|
||||
|
||||
each page, index in pages
|
||||
label.mode
|
||||
h4(data-i18n=`page-name-${page}`)=locals.translations[`page-name-${page}`]
|
||||
div.mode
|
||||
input(type='radio' name='attr_mode_button' class='hide-element' value=index)
|
||||
div.mode-image
|
||||
img(src=`https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Ironsworn/assets/${page}-sheet.png`)
|
||||
|
||||
input(type='radio' name='attr_mode' class='character-mode hide-element' value='0')
|
||||
div.character-mode.hide-element
|
||||
include ./character/index
|
||||
|
||||
input(type='radio' name='attr_mode' class='shared-mode hide-element' value='1')
|
||||
div.shared-mode.hide-element
|
||||
input.changelog.hide-element(type='checkbox' name='attr_changelog_2.3.0')
|
||||
.changelog
|
||||
.copy
|
||||
h3 <strong>Version 2.3.0 Release</strong>
|
||||
div Added translation support for oracles. This includes the roll templates.
|
||||
label.close-changelog
|
||||
input(type='checkbox' name=`attr_close_changelog` class='hide-element')
|
||||
div(data-i18n='page-info-close')=locals.translations['page-info-close']
|
||||
|
||||
- var pages = [ 'character', 'shared' ]
|
||||
input(type='checkbox' name='attr_modes_choice' class='modes-show hide-element' checked)
|
||||
div.modes-show.hide-element
|
||||
div.mode-title
|
||||
h2.mode-title(data-i18n='page-select')=locals.translations['page-select']
|
||||
div.modes
|
||||
|
||||
each page, index in pages
|
||||
label.mode
|
||||
h4(data-i18n=`page-name-${page}`)=locals.translations[`page-name-${page}`]
|
||||
div.mode
|
||||
input(type='radio' name='attr_mode_button' class='hide-element' value=index)
|
||||
div.mode-image
|
||||
img(src=`https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Ironsworn/assets/${page}-sheet.png`)
|
||||
|
||||
input(type='radio' name='attr_mode' class='character-mode hide-element' value='0')
|
||||
div.character-mode.hide-element
|
||||
include ./character/index
|
||||
|
||||
input(type='radio' name='attr_mode' class='shared-mode hide-element' value='1')
|
||||
div.shared-mode.hide-element
|
||||
include ./shared/index
|
||||
@@ -1,429 +1,429 @@
|
||||
include sheetdata.pug
|
||||
|
||||
.ms-wrapper.compendium-drop-target.monsters
|
||||
input(type="hidden", name="attr_sheet_toggle", value="pc")
|
||||
input(type="hidden", name="attr_init", value="0")
|
||||
input(type="hidden", name="attr_settings_toggle")
|
||||
input.sheet-skill-toggle(type="hidden", name="attr_sheet_skill_toggles")
|
||||
|
||||
input(accept="Category", name="attr_drop_category", type="hidden")
|
||||
input(accept="Name", name="attr_drop_name", type="hidden")
|
||||
input(accept="data", name="attr_drop_data", type="hidden")
|
||||
input(accept="Content", name="attr_drop_content", type="hidden")
|
||||
|
||||
label.ms-settings__toggle
|
||||
input(type="checkbox", name="attr_settings_toggle")
|
||||
span y
|
||||
|
||||
.ms-settings
|
||||
.ms-settings__row
|
||||
.ms-settings__label(data-i18n="sheet type")
|
||||
select.ms-settings__input(name="attr_sheet_toggle")
|
||||
option(data-i18n="PC", value="pc")
|
||||
option(data-i18n="NPC", value="npc")
|
||||
option(data-i18n="Ship", value="ship")
|
||||
.ms-settings__row--ship
|
||||
.ms-settings__label(data-i18n="ship builder")
|
||||
button(data-i18n="launch", name="act_startship", type="action")
|
||||
|
||||
.ms-pc
|
||||
.ms-header
|
||||
.ms-header__logo
|
||||
img(src="https://s3.amazonaws.com/files.d20.io/images/145353993/itv_F4exdWuwHavdksYfCQ/max.png?1592850121", data-i18n-title="Mothership Logo")
|
||||
.ms-header__details
|
||||
each field in headerfields
|
||||
div(class=`ms-header__field--${field.attr}`)
|
||||
.ms-header__title(data-i18n=field.label)
|
||||
input.ms-header__input.ms-rounded(name=`attr_${field.attr}`, type=field.type)
|
||||
.ms-skillsaves
|
||||
.ms-stats
|
||||
each field in toprowfields
|
||||
.ms-topstat
|
||||
.ms-topstat__label(data-i18n=field.attr)
|
||||
input.ms-topstat__stat(placeholder=field.placeholder, name=`attr_${field.attr}`, type="number")
|
||||
.ms-topstat__label--invert(data-i18n=field.subtext)
|
||||
.ms-topstat--minmax
|
||||
.ms-topstat__label(data-i18n="health")
|
||||
.ms-topstat__minmaxwrapper
|
||||
input.ms-topstat__max(name="attr_health_max", placeholder="78", type="number")
|
||||
input.ms-topstat__min(name="attr_health", placeholder="78", type="number")
|
||||
.ms-topstat__label--small(data-i18n="max")
|
||||
.ms-topstat__label--small(data-i18n="current")
|
||||
.ms-stats__main
|
||||
each stat in stats
|
||||
-
|
||||
const roll1 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${stat.attr}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=@{${stat.attr}}}}`
|
||||
].join(" ");
|
||||
.ms-mainstat
|
||||
.ms-mainstat__label
|
||||
button(data-i18n=stat.attr, type="roll", value=roll1)
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=stat.label)
|
||||
input.ms-mainstat__input(name=`attr_${stat.attr}`, type="number")
|
||||
.ms-patches
|
||||
h1(data-i18n="patch")
|
||||
textarea.ms-patches__textarea.ms-rounded(name=`attr_patch`)
|
||||
h1(data-i18n="trinket")
|
||||
textarea.ms-patches__textarea.ms-rounded(name=`attr_trinket`)
|
||||
.ms-saves
|
||||
.ms-saves__col--left
|
||||
each save in saves
|
||||
-
|
||||
const roll2 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${save.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=@{${save.name}}}}`
|
||||
].join(" ");
|
||||
.ms-saves__label
|
||||
button.ms-saves__name(data-i18n=save.name, type="roll", value=roll2)
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=save.desc)
|
||||
.ms-saves__subtext(data-i18n=save.subtext)
|
||||
.ms-saves__col--right
|
||||
each save in saves
|
||||
.ms-saves__inputwrapper
|
||||
input.ms-saves__input(name=`attr_${save.name}`, type="number")
|
||||
.ms-stress_panic
|
||||
.ms-stress_panic__label(data-i18n="stress & panic")
|
||||
input.ms-stress_panic__input.ms-rounded(name=`attr_stress_panic`, type="text")
|
||||
|
||||
.ms-skills
|
||||
h1(data-i18n="skills")
|
||||
.ms-skillpoints
|
||||
.ms-skillpoints__label(data-i18n="skill points")
|
||||
input.ms-skillpoints__input.ms-rounded(name=`attr_skill_points`, type="number")
|
||||
.ms-tooltip--skills
|
||||
ul
|
||||
li
|
||||
strong.ms-tooltip__label(data-i18n="trained skills")
|
||||
span(data-i18n="cost 1 point")
|
||||
li
|
||||
strong.ms-tooltip__label(data-i18n="expert skills")
|
||||
span(data-i18n="cost 2 points")
|
||||
li
|
||||
strong.ms-tooltip__label(data-i18n="master skills")
|
||||
span(data-i18n="cost 3 points")
|
||||
span(data-i18n="To take an Expert or Master skill you must first take one of its prerequisite skills")
|
||||
.ms-skills__trained
|
||||
h2(data-i18n="trained +10%")
|
||||
.ms-tooltip
|
||||
p(data-i18n="You’ve received standard training in this area equivalent to a bachelor's degree or on-the-job training for a couple years.")
|
||||
each skill in skills.trained
|
||||
-
|
||||
const attr = skill.name.replace(/ /g,"_");
|
||||
const roll3 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${skill.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill(class=`ms-skill--${attr}`)
|
||||
input(name=`attr_${attr}_settings`, type="hidden")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_${attr}`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button(data-i18n=skill.name, type="roll", value=roll3)
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_${attr}_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_${attr}_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=skill.desc)
|
||||
fieldset(class=`repeating_trained`)
|
||||
-
|
||||
const roll4 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{skill_name}}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill--repeating
|
||||
input(name=`attr_skill_settings`, type="hidden", value="on")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_skill_trained`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button.edit-hide(type="roll", value=roll4)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_skill_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="name")
|
||||
input.ms-skill__settingsinput(data-i18n-title="custom skill", name="attr_skill_name", type="text")
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_skill_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
span(name="attr_skill_notes")
|
||||
.ms-skills__expert
|
||||
h2(data-i18n="expert +15%")
|
||||
.ms-tooltip
|
||||
p(data-i18n="You have the equivalent of a doctorate or many years of experience.")
|
||||
each skill in skills.expert
|
||||
-
|
||||
const attr = skill.name.replace(/ /g,"_");
|
||||
const roll5 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${skill.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill(class=`ms-skill--${attr}`)
|
||||
input(name=`attr_${attr}_settings`, type="hidden")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_${attr}`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button(data-i18n=skill.name, type="roll", value=roll5)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_${attr}_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_${attr}_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=skill.desc)
|
||||
p
|
||||
strong.ms-tooltip__label(data-i18n="prerequisites")
|
||||
div(data-i18n=skill.prereq.join(", "))
|
||||
|
||||
fieldset(class=`repeating_expert`)
|
||||
-
|
||||
const roll6 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{skill_name}}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill--repeating
|
||||
input(name=`attr_skill_settings`, type="hidden", value="on")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_skill_trained`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button.edit-hide(type="roll", value=roll6)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_skill_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="name")
|
||||
input.ms-skill__settingsinput(data-i18n-value="custom skill", name="attr_skill_name", type="text")
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_skill_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
span(name="attr_skill_notes")
|
||||
|
||||
.ms-skills__master
|
||||
h2(data-i18n="master +20%")
|
||||
.ms-tooltip
|
||||
p(data-i18n="You are one of the luminaries of this field and are aware of cutting edge techniques or highly specialized and niche information.")
|
||||
each skill in skills.master
|
||||
-
|
||||
const attr = skill.name.replace(/ /g,"_");
|
||||
const roll7 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${skill.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill(class=`ms-skill--${attr}`)
|
||||
input(name=`attr_${attr}_settings`, type="hidden")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_${attr}`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button(data-i18n=skill.name, type="roll", value=roll7)
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_${attr}_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_${attr}_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=skill.desc)
|
||||
p
|
||||
strong.ms-tooltip__label(data-i18n="prerequisites")
|
||||
div(data-i18n=skill.prereq.join(", "))
|
||||
fieldset(class=`repeating_master`)
|
||||
-
|
||||
const roll8 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{skill_name}}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill--repeating
|
||||
input(name=`attr_skill_settings`, type="hidden", value="on")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_skill_trained`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button.edit-hide(type="roll", value=roll8)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_skill_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="name")
|
||||
input.ms-skill__settingsinput(data-i18n-value="custom skill", name="attr_skill_name", type="text")
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_skill_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
span(name="attr_skill_notes")
|
||||
.ms-gear
|
||||
.ms-equipment
|
||||
h1(data-i18n="equipment")
|
||||
.ms-equipmentrow--head
|
||||
.ms-equipmentrow__name--head(data-i18n="item")
|
||||
.ms-equipmentrow__type--head(data-i18n="type")
|
||||
fieldset(class=`repeating_equipment`)
|
||||
.ms-equipmentrow
|
||||
input(name=`attr_equipment_settings`, type="hidden", value="on")
|
||||
input(name=`attr_equipment_linkedid`, type="hidden")
|
||||
input.ms-equipmentrow__name(name=`attr_equipment_name`, type="text")
|
||||
input.ms-equipmentrow__type(name=`attr_equipment_type`, type="hidden")
|
||||
select.ms-equipmentrow__type(name=`attr_equipment_type`)
|
||||
option(data-i18n="Gear")
|
||||
option(data-i18n="Weapon")
|
||||
option(data-i18n="Ammunition")
|
||||
option(data-i18n="Armor")
|
||||
option(data-i18n="Patch")
|
||||
option(data-i18n="Trinket")
|
||||
option(data-i18n="Other")
|
||||
label.ms-equipmentrow__cog
|
||||
input(name=`attr_equipment_settings`, type="checkbox", checked)
|
||||
span y
|
||||
.ms-equipmentrow__settings
|
||||
.ms-equipmentrow__settingsrow--full.show_armor
|
||||
.ms-equipmentrow__settingstitle(data-i18n="armor bonus")
|
||||
input.ms-equipmentrow__settingsinput(name="attr_equipment_armor_bonus", type="text")
|
||||
.ms-equipmentrow__settingsrow--full
|
||||
.ms-equipmentrow__settingstitle(data-i18n="notes")
|
||||
textarea.ms-equipmentrow__textarea(name="attr_equipment_notes")
|
||||
|
||||
.ms-credits
|
||||
.ms-credits__label(data-i18n="credits")
|
||||
input.ms-credits__input.ms-rounded(name=`attr_credits`, type="text")
|
||||
|
||||
.ms-attacks
|
||||
h1(data-i18n="attacks")
|
||||
.ms-attackrow--head
|
||||
.ms-attackrow__name--head(data-i18n="attack")
|
||||
.ms-attackrow__type--head(data-i18n="type")
|
||||
.ms-attackrow__type--head(data-i18n="damage")
|
||||
fieldset(class=`repeating_attacks`)
|
||||
-
|
||||
const roll9 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{attack_name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[@{combat}]]}}`,
|
||||
`{{ranges=@{attack_range_s}}}`,
|
||||
`{{rangem=@{attack_range_m}}}`,
|
||||
`{{rangel=@{attack_range_l}}}`,
|
||||
`{{damage=[[@{attack_damage}]]}}`
|
||||
].join(" ");
|
||||
.ms-attackrow
|
||||
input(name=`attr_attack_settings`, type="hidden", value="on")
|
||||
input(name=`attr_attack_linkedid`, type="hidden")
|
||||
button.ms-attackrow__name(type="roll", value=roll9)
|
||||
span(name=`attr_attack_name`, type="text")
|
||||
input.ms-attackrow__skill(name=`attr_attack_type`, type="hidden")
|
||||
select.ms-attackrow__skill(name=`attr_attack_type`)
|
||||
option(data-i18n="Ranged")
|
||||
option(data-i18n="Melee")
|
||||
input.ms-attackrow__damage(name=`attr_attack_damage`, type="text")
|
||||
label.ms-attackrow__cog
|
||||
input(name=`attr_attack_settings`, type="checkbox", checked)
|
||||
span y
|
||||
.ms-attackrow__settings
|
||||
.ms-attackrow__settingsrow--full
|
||||
.ms-attackrow__settingstitle(data-i18n="name")
|
||||
input.ms-attackrow__settingsinput(data-i18n-value="custom skill", name="attr_attack_name", type="text")
|
||||
.ms-attackrow__settingsrow--range.show_ranged
|
||||
.ms-attackrow__settingstitle(data-i18n="range")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="short", name="attr_attack_range_s", type="text")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="medium", name="attr_attack_range_m", type="text")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="long", name="attr_attack_range_l", type="text")
|
||||
.ms-attackrow__settingsrow
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="critical damage")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="damage", name="attr_attack_crit_damage", type="text")
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="critical effect")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="effect", name="attr_attack_crit_effect", type="text")
|
||||
.ms-attackrow__settingsrow
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="shots")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="shots", name="attr_attack_shots", type="text")
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="ammunition")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="damage", name="attr_attack_ammunition", type="text")
|
||||
.ms-attackrow__settingsrow--full
|
||||
.ms-attackrow__settingstitle(data-i18n="notes")
|
||||
textarea.ms-sattackrow__textarea(name="attr_attack_notes")
|
||||
.ms-ship
|
||||
include shipsheet.pug
|
||||
|
||||
.ms-npc
|
||||
include npc.pug
|
||||
|
||||
include rolltemplates.pug
|
||||
|
||||
script(type="text/worker")
|
||||
|
||||
include sheetdata.pug
|
||||
|
||||
.ms-wrapper.compendium-drop-target.monsters
|
||||
input(type="hidden", name="attr_sheet_toggle", value="pc")
|
||||
input(type="hidden", name="attr_init", value="0")
|
||||
input(type="hidden", name="attr_settings_toggle")
|
||||
input.sheet-skill-toggle(type="hidden", name="attr_sheet_skill_toggles")
|
||||
|
||||
input(accept="Category", name="attr_drop_category", type="hidden")
|
||||
input(accept="Name", name="attr_drop_name", type="hidden")
|
||||
input(accept="data", name="attr_drop_data", type="hidden")
|
||||
input(accept="Content", name="attr_drop_content", type="hidden")
|
||||
|
||||
label.ms-settings__toggle
|
||||
input(type="checkbox", name="attr_settings_toggle")
|
||||
span y
|
||||
|
||||
.ms-settings
|
||||
.ms-settings__row
|
||||
.ms-settings__label(data-i18n="sheet type")
|
||||
select.ms-settings__input(name="attr_sheet_toggle")
|
||||
option(data-i18n="PC", value="pc")
|
||||
option(data-i18n="NPC", value="npc")
|
||||
option(data-i18n="Ship", value="ship")
|
||||
.ms-settings__row--ship
|
||||
.ms-settings__label(data-i18n="ship builder")
|
||||
button(data-i18n="launch", name="act_startship", type="action")
|
||||
|
||||
.ms-pc
|
||||
.ms-header
|
||||
.ms-header__logo
|
||||
img(src="https://s3.amazonaws.com/files.d20.io/images/145353993/itv_F4exdWuwHavdksYfCQ/max.png?1592850121", data-i18n-title="Mothership Logo")
|
||||
.ms-header__details
|
||||
each field in headerfields
|
||||
div(class=`ms-header__field--${field.attr}`)
|
||||
.ms-header__title(data-i18n=field.label)
|
||||
input.ms-header__input.ms-rounded(name=`attr_${field.attr}`, type=field.type)
|
||||
.ms-skillsaves
|
||||
.ms-stats
|
||||
each field in toprowfields
|
||||
.ms-topstat
|
||||
.ms-topstat__label(data-i18n=field.attr)
|
||||
input.ms-topstat__stat(placeholder=field.placeholder, name=`attr_${field.attr}`, type="number")
|
||||
.ms-topstat__label--invert(data-i18n=field.subtext)
|
||||
.ms-topstat--minmax
|
||||
.ms-topstat__label(data-i18n="health")
|
||||
.ms-topstat__minmaxwrapper
|
||||
input.ms-topstat__max(name="attr_health_max", placeholder="78", type="number")
|
||||
input.ms-topstat__min(name="attr_health", placeholder="78", type="number")
|
||||
.ms-topstat__label--small(data-i18n="max")
|
||||
.ms-topstat__label--small(data-i18n="current")
|
||||
.ms-stats__main
|
||||
each stat in stats
|
||||
-
|
||||
const roll1 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${stat.attr}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=@{${stat.attr}}}}`
|
||||
].join(" ");
|
||||
.ms-mainstat
|
||||
.ms-mainstat__label
|
||||
button(data-i18n=stat.attr, type="roll", value=roll1)
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=stat.label)
|
||||
input.ms-mainstat__input(name=`attr_${stat.attr}`, type="number")
|
||||
.ms-patches
|
||||
h1(data-i18n="patch")
|
||||
textarea.ms-patches__textarea.ms-rounded(name=`attr_patch`)
|
||||
h1(data-i18n="trinket")
|
||||
textarea.ms-patches__textarea.ms-rounded(name=`attr_trinket`)
|
||||
.ms-saves
|
||||
.ms-saves__col--left
|
||||
each save in saves
|
||||
-
|
||||
const roll2 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${save.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=@{${save.name}}}}`
|
||||
].join(" ");
|
||||
.ms-saves__label
|
||||
button.ms-saves__name(data-i18n=save.name, type="roll", value=roll2)
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=save.desc)
|
||||
.ms-saves__subtext(data-i18n=save.subtext)
|
||||
.ms-saves__col--right
|
||||
each save in saves
|
||||
.ms-saves__inputwrapper
|
||||
input.ms-saves__input(name=`attr_${save.name}`, type="number")
|
||||
.ms-stress_panic
|
||||
.ms-stress_panic__label(data-i18n="stress & panic")
|
||||
input.ms-stress_panic__input.ms-rounded(name=`attr_stress_panic`, type="text")
|
||||
|
||||
.ms-skills
|
||||
h1(data-i18n="skills")
|
||||
.ms-skillpoints
|
||||
.ms-skillpoints__label(data-i18n="skill points")
|
||||
input.ms-skillpoints__input.ms-rounded(name=`attr_skill_points`, type="number")
|
||||
.ms-tooltip--skills
|
||||
ul
|
||||
li
|
||||
strong.ms-tooltip__label(data-i18n="trained skills")
|
||||
span(data-i18n="cost 1 point")
|
||||
li
|
||||
strong.ms-tooltip__label(data-i18n="expert skills")
|
||||
span(data-i18n="cost 2 points")
|
||||
li
|
||||
strong.ms-tooltip__label(data-i18n="master skills")
|
||||
span(data-i18n="cost 3 points")
|
||||
span(data-i18n="To take an Expert or Master skill you must first take one of its prerequisite skills")
|
||||
.ms-skills__trained
|
||||
h2(data-i18n="trained +10%")
|
||||
.ms-tooltip
|
||||
p(data-i18n="You’ve received standard training in this area equivalent to a bachelor's degree or on-the-job training for a couple years.")
|
||||
each skill in skills.trained
|
||||
-
|
||||
const attr = skill.name.replace(/ /g,"_");
|
||||
const roll3 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${skill.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill(class=`ms-skill--${attr}`)
|
||||
input(name=`attr_${attr}_settings`, type="hidden")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_${attr}`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button(data-i18n=skill.name, type="roll", value=roll3)
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_${attr}_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_${attr}_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=skill.desc)
|
||||
fieldset(class=`repeating_trained`)
|
||||
-
|
||||
const roll4 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{skill_name}}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill--repeating
|
||||
input(name=`attr_skill_settings`, type="hidden", value="on")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_skill_trained`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button.edit-hide(type="roll", value=roll4)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_skill_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="name")
|
||||
input.ms-skill__settingsinput(data-i18n-title="custom skill", name="attr_skill_name", type="text")
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_skill_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
span(name="attr_skill_notes")
|
||||
.ms-skills__expert
|
||||
h2(data-i18n="expert +15%")
|
||||
.ms-tooltip
|
||||
p(data-i18n="You have the equivalent of a doctorate or many years of experience.")
|
||||
each skill in skills.expert
|
||||
-
|
||||
const attr = skill.name.replace(/ /g,"_");
|
||||
const roll5 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${skill.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill(class=`ms-skill--${attr}`)
|
||||
input(name=`attr_${attr}_settings`, type="hidden")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_${attr}`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button(data-i18n=skill.name, type="roll", value=roll5)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_${attr}_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_${attr}_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=skill.desc)
|
||||
p
|
||||
strong.ms-tooltip__label(data-i18n="prerequisites")
|
||||
div(data-i18n=skill.prereq.join(", "))
|
||||
|
||||
fieldset(class=`repeating_expert`)
|
||||
-
|
||||
const roll6 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{skill_name}}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill--repeating
|
||||
input(name=`attr_skill_settings`, type="hidden", value="on")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_skill_trained`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button.edit-hide(type="roll", value=roll6)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_skill_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="name")
|
||||
input.ms-skill__settingsinput(data-i18n-value="custom skill", name="attr_skill_name", type="text")
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_skill_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
span(name="attr_skill_notes")
|
||||
|
||||
.ms-skills__master
|
||||
h2(data-i18n="master +20%")
|
||||
.ms-tooltip
|
||||
p(data-i18n="You are one of the luminaries of this field and are aware of cutting edge techniques or highly specialized and niche information.")
|
||||
each skill in skills.master
|
||||
-
|
||||
const attr = skill.name.replace(/ /g,"_");
|
||||
const roll7 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=${skill.name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill(class=`ms-skill--${attr}`)
|
||||
input(name=`attr_${attr}_settings`, type="hidden")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_${attr}`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button(data-i18n=skill.name, type="roll", value=roll7)
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_${attr}_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_${attr}_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
p
|
||||
span(data-i18n=skill.desc)
|
||||
p
|
||||
strong.ms-tooltip__label(data-i18n="prerequisites")
|
||||
div(data-i18n=skill.prereq.join(", "))
|
||||
fieldset(class=`repeating_master`)
|
||||
-
|
||||
const roll8 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{skill_name}}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20]]}}`
|
||||
].join(" ");
|
||||
|
||||
.ms-skill-wrapper
|
||||
.ms-skill--repeating
|
||||
input(name=`attr_skill_settings`, type="hidden", value="on")
|
||||
label.ms-skill__checkmark
|
||||
input(name=`attr_skill_trained`, type="checkbox")
|
||||
span
|
||||
div.ms-skill__button
|
||||
button.edit-hide(type="roll", value=roll8)
|
||||
span(name="attr_skill_name")
|
||||
label.ms-skill__cog
|
||||
input(name=`attr_skill_settings`, type="checkbox")
|
||||
span y
|
||||
.ms-skill__settings
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="name")
|
||||
input.ms-skill__settingsinput(data-i18n-value="custom skill", name="attr_skill_name", type="text")
|
||||
.ms-skill__settingsrow
|
||||
.ms-skill__settingstitle(data-i18n="notes")
|
||||
input.ms-skill__settingsinput(name=`attr_skill_notes`, type="text")
|
||||
span.ms-tooltip
|
||||
span(name="attr_skill_notes")
|
||||
.ms-gear
|
||||
.ms-equipment
|
||||
h1(data-i18n="equipment")
|
||||
.ms-equipmentrow--head
|
||||
.ms-equipmentrow__name--head(data-i18n="item")
|
||||
.ms-equipmentrow__type--head(data-i18n="type")
|
||||
fieldset(class=`repeating_equipment`)
|
||||
.ms-equipmentrow
|
||||
input(name=`attr_equipment_settings`, type="hidden", value="on")
|
||||
input(name=`attr_equipment_linkedid`, type="hidden")
|
||||
input.ms-equipmentrow__name(name=`attr_equipment_name`, type="text")
|
||||
input.ms-equipmentrow__type(name=`attr_equipment_type`, type="hidden")
|
||||
select.ms-equipmentrow__type(name=`attr_equipment_type`)
|
||||
option(data-i18n="Gear")
|
||||
option(data-i18n="Weapon")
|
||||
option(data-i18n="Ammunition")
|
||||
option(data-i18n="Armor")
|
||||
option(data-i18n="Patch")
|
||||
option(data-i18n="Trinket")
|
||||
option(data-i18n="Other")
|
||||
label.ms-equipmentrow__cog
|
||||
input(name=`attr_equipment_settings`, type="checkbox", checked)
|
||||
span y
|
||||
.ms-equipmentrow__settings
|
||||
.ms-equipmentrow__settingsrow--full.show_armor
|
||||
.ms-equipmentrow__settingstitle(data-i18n="armor bonus")
|
||||
input.ms-equipmentrow__settingsinput(name="attr_equipment_armor_bonus", type="text")
|
||||
.ms-equipmentrow__settingsrow--full
|
||||
.ms-equipmentrow__settingstitle(data-i18n="notes")
|
||||
textarea.ms-equipmentrow__textarea(name="attr_equipment_notes")
|
||||
|
||||
.ms-credits
|
||||
.ms-credits__label(data-i18n="credits")
|
||||
input.ms-credits__input.ms-rounded(name=`attr_credits`, type="text")
|
||||
|
||||
.ms-attacks
|
||||
h1(data-i18n="attacks")
|
||||
.ms-attackrow--head
|
||||
.ms-attackrow__name--head(data-i18n="attack")
|
||||
.ms-attackrow__type--head(data-i18n="type")
|
||||
.ms-attackrow__type--head(data-i18n="damage")
|
||||
fieldset(class=`repeating_attacks`)
|
||||
-
|
||||
const roll9 = [
|
||||
`&{template:ms}`,
|
||||
`{{name=@{attack_name}}}`,
|
||||
`{{character_name=@{character_name}}}`,
|
||||
`{{roll=[[1d100cs1cf100]]}}`,
|
||||
`{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}}`,
|
||||
`{{target=[[@{combat}]]}}`,
|
||||
`{{ranges=@{attack_range_s}}}`,
|
||||
`{{rangem=@{attack_range_m}}}`,
|
||||
`{{rangel=@{attack_range_l}}}`,
|
||||
`{{damage=[[@{attack_damage}]]}}`
|
||||
].join(" ");
|
||||
.ms-attackrow
|
||||
input(name=`attr_attack_settings`, type="hidden", value="on")
|
||||
input(name=`attr_attack_linkedid`, type="hidden")
|
||||
button.ms-attackrow__name(type="roll", value=roll9)
|
||||
span(name=`attr_attack_name`, type="text")
|
||||
input.ms-attackrow__skill(name=`attr_attack_type`, type="hidden")
|
||||
select.ms-attackrow__skill(name=`attr_attack_type`)
|
||||
option(data-i18n="Ranged")
|
||||
option(data-i18n="Melee")
|
||||
input.ms-attackrow__damage(name=`attr_attack_damage`, type="text")
|
||||
label.ms-attackrow__cog
|
||||
input(name=`attr_attack_settings`, type="checkbox", checked)
|
||||
span y
|
||||
.ms-attackrow__settings
|
||||
.ms-attackrow__settingsrow--full
|
||||
.ms-attackrow__settingstitle(data-i18n="name")
|
||||
input.ms-attackrow__settingsinput(data-i18n-value="custom skill", name="attr_attack_name", type="text")
|
||||
.ms-attackrow__settingsrow--range.show_ranged
|
||||
.ms-attackrow__settingstitle(data-i18n="range")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="short", name="attr_attack_range_s", type="text")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="medium", name="attr_attack_range_m", type="text")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="long", name="attr_attack_range_l", type="text")
|
||||
.ms-attackrow__settingsrow
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="critical damage")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="damage", name="attr_attack_crit_damage", type="text")
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="critical effect")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="effect", name="attr_attack_crit_effect", type="text")
|
||||
.ms-attackrow__settingsrow
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="shots")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="shots", name="attr_attack_shots", type="text")
|
||||
div
|
||||
.ms-attackrow__settingstitle(data-i18n="ammunition")
|
||||
input.ms-attackrow__settingsinput(data-i18n-placeholder="damage", name="attr_attack_ammunition", type="text")
|
||||
.ms-attackrow__settingsrow--full
|
||||
.ms-attackrow__settingstitle(data-i18n="notes")
|
||||
textarea.ms-sattackrow__textarea(name="attr_attack_notes")
|
||||
.ms-ship
|
||||
include shipsheet.pug
|
||||
|
||||
.ms-npc
|
||||
include npc.pug
|
||||
|
||||
include rolltemplates.pug
|
||||
|
||||
script(type="text/worker")
|
||||
|
||||
include ../js/sheetworkers.js
|
||||
@@ -1,28 +1,28 @@
|
||||
rolltemplate.sheet-rolltemplate-ms
|
||||
.sheet-ms-container
|
||||
| {{#name}}
|
||||
h1 {{name}}
|
||||
| {{/name}}
|
||||
| {{#character_name}}
|
||||
h2 {{character_name}}
|
||||
| {{/character_name}}
|
||||
| {{#roll}}
|
||||
.sheet-ms-roll
|
||||
.sheet-ms-roll__roll {{roll}}
|
||||
| {{#rollGreater() roll2 0}}
|
||||
.sheet-ms-roll__roll2 {{roll2}}
|
||||
| {{/rollGreater() roll2 0}}
|
||||
| {{#target}}
|
||||
.sheet-ms-target
|
||||
.sheet-ms-target__label(data-i18n="target:")
|
||||
.sheet-ms-target__value {{target}}
|
||||
| {{/target}}
|
||||
| {{/roll}}
|
||||
| {{#damage}}
|
||||
.sheet-ms-damage
|
||||
.sheet-ms-damage__label(data-i18n="damage:")
|
||||
.sheet-ms-damage__value {{damage}}
|
||||
| {{/damage}}
|
||||
| {{#notes}}
|
||||
.sheet-ms-notes {{notes}}
|
||||
rolltemplate.sheet-rolltemplate-ms
|
||||
.sheet-ms-container
|
||||
| {{#name}}
|
||||
h1 {{name}}
|
||||
| {{/name}}
|
||||
| {{#character_name}}
|
||||
h2 {{character_name}}
|
||||
| {{/character_name}}
|
||||
| {{#roll}}
|
||||
.sheet-ms-roll
|
||||
.sheet-ms-roll__roll {{roll}}
|
||||
| {{#rollGreater() roll2 0}}
|
||||
.sheet-ms-roll__roll2 {{roll2}}
|
||||
| {{/rollGreater() roll2 0}}
|
||||
| {{#target}}
|
||||
.sheet-ms-target
|
||||
.sheet-ms-target__label(data-i18n="target:")
|
||||
.sheet-ms-target__value {{target}}
|
||||
| {{/target}}
|
||||
| {{/roll}}
|
||||
| {{#damage}}
|
||||
.sheet-ms-damage
|
||||
.sheet-ms-damage__label(data-i18n="damage:")
|
||||
.sheet-ms-damage__value {{damage}}
|
||||
| {{/damage}}
|
||||
| {{#notes}}
|
||||
.sheet-ms-notes {{notes}}
|
||||
| {{/notes}}
|
||||
@@ -1,147 +1,147 @@
|
||||
|
||||
|
||||
.sheet-rolltemplate-ms {
|
||||
|
||||
.sheet-ms {
|
||||
|
||||
&-container {
|
||||
padding: $ms-margin-large;
|
||||
|
||||
background: $ms-background;
|
||||
color: $ms-foreground;
|
||||
|
||||
border-radius: 2rem;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
border: $ms-border-thick;
|
||||
|
||||
font-family: $ms-fonts-body;
|
||||
|
||||
h1, h2 {
|
||||
margin: 0;
|
||||
padding: $ms-margin;
|
||||
|
||||
font-family: $ms-fonts-header;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
width: 90%;
|
||||
|
||||
margin-top: -$ms-margin-large;
|
||||
margin-left: -$ms-margin-large;
|
||||
font-size: $ms-font-h1;
|
||||
text-transform: uppercase;
|
||||
|
||||
background: $ms-invert-background;
|
||||
color: $ms-invert-foreground;
|
||||
|
||||
border-bottom-right-radius: 1.5em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: $ms-font-h2;
|
||||
font-weight: normal;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.importantroll,
|
||||
.fullcrit,
|
||||
.fullfail,
|
||||
.inlinerollresult {
|
||||
border: none;
|
||||
background: transparent;
|
||||
|
||||
font-family: inherit;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.fullcrit {
|
||||
color: darkgreen;
|
||||
}
|
||||
|
||||
.fullfail {
|
||||
color: darkred;
|
||||
}
|
||||
}
|
||||
|
||||
&-roll {
|
||||
box-sizing: border-box;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
|
||||
&__roll,
|
||||
&__roll2 {
|
||||
height: 4rem;
|
||||
grid-column: span 2;
|
||||
|
||||
background: $ms-background;
|
||||
border-radius: 1.5rem;
|
||||
color: $ms-foreground;
|
||||
|
||||
font-size: $ms-font-h1 * 1.5;
|
||||
line-height: 4rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&__roll {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
|
||||
border: $ms-border-thick;
|
||||
|
||||
&:only-child {
|
||||
grid-column: 2 / span 2;
|
||||
|
||||
border-radius: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
&__roll2 {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
|
||||
border: $ms-border-thick;
|
||||
border-left: none;
|
||||
}
|
||||
}
|
||||
|
||||
&-target,
|
||||
&-damage {
|
||||
box-sizing: border-box;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 6rem;
|
||||
align-items: center;
|
||||
gap: $ms-margin-large * 2;
|
||||
padding: $ms-margin-small;
|
||||
|
||||
font-size: $ms-font-large;
|
||||
|
||||
background: $ms-background;
|
||||
border-radius: 1.5rem;
|
||||
color: $ms-foreground;
|
||||
|
||||
&__label {
|
||||
font-family: $ms-fonts-header;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
&__value {
|
||||
border: $ms-border;
|
||||
border-radius: .5rem;
|
||||
padding: $ms-margin-small;
|
||||
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sheet-rolltemplate-ms {
|
||||
|
||||
.sheet-ms {
|
||||
|
||||
&-container {
|
||||
padding: $ms-margin-large;
|
||||
|
||||
background: $ms-background;
|
||||
color: $ms-foreground;
|
||||
|
||||
border-radius: 2rem;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
border: $ms-border-thick;
|
||||
|
||||
font-family: $ms-fonts-body;
|
||||
|
||||
h1, h2 {
|
||||
margin: 0;
|
||||
padding: $ms-margin;
|
||||
|
||||
font-family: $ms-fonts-header;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
width: 90%;
|
||||
|
||||
margin-top: -$ms-margin-large;
|
||||
margin-left: -$ms-margin-large;
|
||||
font-size: $ms-font-h1;
|
||||
text-transform: uppercase;
|
||||
|
||||
background: $ms-invert-background;
|
||||
color: $ms-invert-foreground;
|
||||
|
||||
border-bottom-right-radius: 1.5em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: $ms-font-h2;
|
||||
font-weight: normal;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.importantroll,
|
||||
.fullcrit,
|
||||
.fullfail,
|
||||
.inlinerollresult {
|
||||
border: none;
|
||||
background: transparent;
|
||||
|
||||
font-family: inherit;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.fullcrit {
|
||||
color: darkgreen;
|
||||
}
|
||||
|
||||
.fullfail {
|
||||
color: darkred;
|
||||
}
|
||||
}
|
||||
|
||||
&-roll {
|
||||
box-sizing: border-box;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
|
||||
&__roll,
|
||||
&__roll2 {
|
||||
height: 4rem;
|
||||
grid-column: span 2;
|
||||
|
||||
background: $ms-background;
|
||||
border-radius: 1.5rem;
|
||||
color: $ms-foreground;
|
||||
|
||||
font-size: $ms-font-h1 * 1.5;
|
||||
line-height: 4rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&__roll {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
|
||||
border: $ms-border-thick;
|
||||
|
||||
&:only-child {
|
||||
grid-column: 2 / span 2;
|
||||
|
||||
border-radius: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
&__roll2 {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
|
||||
border: $ms-border-thick;
|
||||
border-left: none;
|
||||
}
|
||||
}
|
||||
|
||||
&-target,
|
||||
&-damage {
|
||||
box-sizing: border-box;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 6rem;
|
||||
align-items: center;
|
||||
gap: $ms-margin-large * 2;
|
||||
padding: $ms-margin-small;
|
||||
|
||||
font-size: $ms-font-large;
|
||||
|
||||
background: $ms-background;
|
||||
border-radius: 1.5rem;
|
||||
color: $ms-foreground;
|
||||
|
||||
&__label {
|
||||
font-family: $ms-fonts-header;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
&__value {
|
||||
border: $ms-border;
|
||||
border-radius: .5rem;
|
||||
padding: $ms-margin-small;
|
||||
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,47 +1,47 @@
|
||||
$skillList:
|
||||
"psychology",
|
||||
"genetics",
|
||||
"pathology",
|
||||
"botany",
|
||||
"planetology",
|
||||
"asteroid_mining",
|
||||
"jury_rigging",
|
||||
"engineering",
|
||||
"hacking",
|
||||
"vehicle_specialization",
|
||||
"astrogation",
|
||||
"physics",
|
||||
"mysticism",
|
||||
"tactics",
|
||||
"gunnery",
|
||||
"firearms",
|
||||
"close-quarters_combat",
|
||||
"explosives",
|
||||
"sophontology",
|
||||
"xenobiology",
|
||||
"surgery",
|
||||
"cybernetics",
|
||||
"robotics",
|
||||
"artificial_intelligence",
|
||||
"command",
|
||||
"hyperspace",
|
||||
"xenoesotericism",
|
||||
"weapon_specialization";
|
||||
|
||||
input.sheet-skill-toggle {
|
||||
border: 1px solid red;
|
||||
|
||||
@each $skill in $skillList {
|
||||
|
||||
&[value*=#{$skill}] {
|
||||
~ * .sheet-ms-skill--#{$skill} {
|
||||
opacity: 1;
|
||||
|
||||
button[type="roll"],
|
||||
.sheet-ms-skill__checkmark {
|
||||
pointer-events: unset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$skillList:
|
||||
"psychology",
|
||||
"genetics",
|
||||
"pathology",
|
||||
"botany",
|
||||
"planetology",
|
||||
"asteroid_mining",
|
||||
"jury_rigging",
|
||||
"engineering",
|
||||
"hacking",
|
||||
"vehicle_specialization",
|
||||
"astrogation",
|
||||
"physics",
|
||||
"mysticism",
|
||||
"tactics",
|
||||
"gunnery",
|
||||
"firearms",
|
||||
"close-quarters_combat",
|
||||
"explosives",
|
||||
"sophontology",
|
||||
"xenobiology",
|
||||
"surgery",
|
||||
"cybernetics",
|
||||
"robotics",
|
||||
"artificial_intelligence",
|
||||
"command",
|
||||
"hyperspace",
|
||||
"xenoesotericism",
|
||||
"weapon_specialization";
|
||||
|
||||
input.sheet-skill-toggle {
|
||||
border: 1px solid red;
|
||||
|
||||
@each $skill in $skillList {
|
||||
|
||||
&[value*=#{$skill}] {
|
||||
~ * .sheet-ms-skill--#{$skill} {
|
||||
opacity: 1;
|
||||
|
||||
button[type="roll"],
|
||||
.sheet-ms-skill__checkmark {
|
||||
pointer-events: unset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
@@ -1,327 +1,327 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="3.7in" height="6.81111in"
|
||||
viewBox="0 0 333 613">
|
||||
<path id="Selection"
|
||||
fill="white" stroke="white" stroke-width="1"
|
||||
d="M 38.91,0.85
|
||||
C 42.10,2.25 44.87,6.35 47.13,9.00
|
||||
51.67,14.32 55.78,19.11 61.00,23.83
|
||||
61.00,23.83 93.91,48.09 93.91,48.09
|
||||
106.74,60.82 107.03,73.36 107.00,90.00
|
||||
106.99,94.40 107.06,95.64 106.00,100.00
|
||||
117.01,95.98 133.45,97.51 143.00,104.61
|
||||
146.50,107.22 149.16,110.72 152.00,114.00
|
||||
159.91,97.94 180.33,95.21 196.00,100.00
|
||||
196.00,100.00 195.00,87.00 195.00,87.00
|
||||
194.87,75.09 197.09,62.65 204.53,53.00
|
||||
213.56,41.28 229.19,35.65 242.00,23.00
|
||||
242.00,23.00 261.09,2.43 261.09,2.43
|
||||
263.46,0.57 267.81,-0.79 270.69,0.60
|
||||
273.17,1.80 272.90,4.66 273.16,7.00
|
||||
273.16,7.00 274.00,25.00 274.00,25.00
|
||||
274.00,25.00 273.09,37.00 273.09,37.00
|
||||
273.09,37.00 271.36,64.00 271.36,64.00
|
||||
270.48,69.74 264.29,90.72 261.74,96.00
|
||||
256.62,106.60 251.87,114.44 241.00,120.02
|
||||
234.89,123.15 227.79,124.45 221.00,125.00
|
||||
221.00,125.00 224.92,142.00 224.92,142.00
|
||||
224.92,142.00 224.92,166.00 224.92,166.00
|
||||
242.62,160.90 263.01,160.66 280.00,168.31
|
||||
293.53,174.41 296.84,178.92 308.00,186.00
|
||||
308.00,186.00 308.00,0.00 308.00,0.00
|
||||
308.00,0.00 332.00,0.00 332.00,0.00
|
||||
332.00,0.00 331.00,17.00 331.00,17.00
|
||||
331.00,17.00 331.00,613.00 331.00,613.00
|
||||
331.00,613.00 308.00,613.00 308.00,613.00
|
||||
308.00,613.00 308.00,241.00 308.00,241.00
|
||||
307.99,231.75 306.55,221.23 302.10,213.00
|
||||
288.61,188.07 257.79,181.52 233.00,192.44
|
||||
210.21,202.48 194.19,228.19 189.40,252.00
|
||||
188.60,255.97 187.04,266.25 187.32,270.00
|
||||
188.52,285.98 193.22,301.39 203.47,314.00
|
||||
223.80,339.02 246.26,337.31 264.56,359.00
|
||||
270.38,365.90 275.67,374.38 278.48,383.00
|
||||
285.19,403.56 280.04,433.61 262.00,447.08
|
||||
248.76,456.96 237.61,457.00 222.00,457.00
|
||||
222.00,457.00 222.00,472.00 222.00,472.00
|
||||
227.45,470.56 231.31,469.80 237.00,470.04
|
||||
271.03,471.48 280.20,508.30 283.16,536.00
|
||||
283.16,536.00 285.00,554.00 285.00,554.00
|
||||
285.00,554.00 285.00,584.00 285.00,584.00
|
||||
285.00,592.60 286.04,597.06 282.00,605.00
|
||||
282.00,605.00 280.00,605.00 280.00,605.00
|
||||
273.63,590.73 257.53,572.97 245.00,563.75
|
||||
233.73,555.47 221.76,550.51 214.26,538.00
|
||||
206.64,525.31 208.00,516.94 208.00,503.00
|
||||
197.20,510.72 180.36,516.84 167.00,517.00
|
||||
167.00,517.00 153.00,517.00 153.00,517.00
|
||||
128.13,517.00 116.81,517.53 95.00,503.00
|
||||
95.00,512.57 95.66,521.87 92.07,531.00
|
||||
84.43,550.44 63.08,557.28 49.00,571.01
|
||||
43.81,576.08 38.47,581.15 34.16,587.00
|
||||
29.38,593.48 25.41,600.99 19.00,606.00
|
||||
17.83,597.10 16.99,587.98 17.00,579.00
|
||||
17.00,579.00 18.00,562.00 18.00,562.00
|
||||
18.03,540.33 19.06,521.50 27.20,501.00
|
||||
36.46,477.70 55.01,464.78 80.00,472.00
|
||||
80.00,472.00 80.00,457.00 80.00,457.00
|
||||
65.83,457.00 54.18,456.94 42.00,448.21
|
||||
33.07,441.82 27.64,433.30 24.34,423.00
|
||||
17.33,401.12 21.55,378.73 36.32,361.00
|
||||
57.56,335.52 81.40,338.69 100.57,312.00
|
||||
111.33,297.02 115.21,282.24 115.00,264.00
|
||||
114.90,255.95 112.57,248.54 110.00,241.00
|
||||
98.53,207.32 69.44,180.62 32.00,188.67
|
||||
16.40,192.02 11.88,201.50 0.00,210.00
|
||||
0.00,210.00 0.00,190.00 0.00,190.00
|
||||
0.00,187.93 -0.11,184.92 0.60,183.00
|
||||
2.61,177.60 11.95,172.71 17.00,170.26
|
||||
28.16,164.83 46.62,160.98 59.00,162.17
|
||||
59.00,162.17 77.00,165.00 77.00,165.00
|
||||
77.00,150.61 76.02,138.66 82.00,125.00
|
||||
76.57,124.88 67.93,123.84 63.00,121.65
|
||||
52.90,117.17 46.50,108.63 41.76,99.00
|
||||
33.56,82.38 31.19,63.25 29.91,45.00
|
||||
29.91,45.00 29.00,33.00 29.00,33.00
|
||||
29.00,33.00 29.00,15.00 29.00,15.00
|
||||
29.00,15.00 30.00,0.00 30.00,0.00
|
||||
32.69,0.00 36.46,-0.22 38.91,0.85 Z
|
||||
M 0.00,21.00
|
||||
C 0.00,21.00 1.00,16.00 1.00,16.00
|
||||
1.00,16.00 0.00,21.00 0.00,21.00 Z
|
||||
M 44.92,54.00
|
||||
C 46.25,65.78 49.73,85.39 56.63,95.00
|
||||
60.55,100.44 68.84,107.61 76.00,105.00
|
||||
70.26,102.38 66.01,98.86 62.00,94.00
|
||||
62.00,94.00 75.00,95.00 75.00,95.00
|
||||
69.29,83.38 62.16,83.39 54.00,72.00
|
||||
54.00,72.00 60.00,73.00 60.00,73.00
|
||||
60.00,73.00 53.00,55.00 53.00,55.00
|
||||
53.00,55.00 69.00,66.00 69.00,66.00
|
||||
69.00,66.00 73.00,61.00 73.00,61.00
|
||||
75.96,70.10 75.82,81.26 83.00,88.00
|
||||
83.00,88.00 84.00,77.00 84.00,77.00
|
||||
84.00,77.00 93.00,93.00 93.00,93.00
|
||||
94.77,84.05 90.64,74.94 85.18,68.00
|
||||
75.57,55.80 58.37,46.61 44.92,39.00
|
||||
43.10,43.78 44.25,49.04 44.92,54.00 Z
|
||||
M 216.02,70.00
|
||||
C 210.90,76.55 206.70,85.69 210.00,94.00
|
||||
212.53,86.78 213.81,84.71 219.00,79.00
|
||||
219.00,79.00 221.00,88.00 221.00,88.00
|
||||
225.80,76.86 227.33,73.36 229.00,61.00
|
||||
230.31,61.95 232.61,63.92 234.17,64.12
|
||||
237.53,64.54 246.22,57.22 249.00,55.00
|
||||
249.00,55.00 242.00,73.00 242.00,73.00
|
||||
242.00,73.00 248.00,72.00 248.00,72.00
|
||||
240.20,84.26 231.65,84.31 228.00,95.00
|
||||
228.00,95.00 241.00,94.00 241.00,94.00
|
||||
241.00,94.00 227.00,106.00 227.00,106.00
|
||||
232.34,105.52 236.78,104.21 240.96,100.66
|
||||
252.09,91.21 257.06,65.19 258.02,51.00
|
||||
258.02,51.00 259.00,39.00 259.00,39.00
|
||||
244.97,43.90 225.08,58.38 216.02,70.00 Z
|
||||
M 139.00,158.10
|
||||
C 128.24,164.03 114.21,161.06 109.23,149.00
|
||||
105.73,140.53 113.58,134.30 118.99,135.47
|
||||
124.96,136.77 126.56,145.55 131.79,144.12
|
||||
136.58,142.81 136.22,134.68 135.24,131.00
|
||||
130.94,114.96 110.25,112.81 100.39,125.02
|
||||
92.24,135.11 93.85,152.60 94.00,165.00
|
||||
94.15,177.16 99.37,178.64 106.83,187.00
|
||||
111.23,191.93 115.14,198.15 118.22,204.00
|
||||
132.21,230.57 137.33,264.87 129.26,294.00
|
||||
125.06,309.13 116.73,323.30 105.00,333.83
|
||||
101.22,337.22 97.13,339.83 93.00,342.72
|
||||
74.76,355.49 59.04,365.29 50.02,387.00
|
||||
44.66,399.90 43.87,412.82 51.47,425.00
|
||||
56.26,432.70 62.07,435.89 71.00,436.00
|
||||
77.37,436.07 82.33,435.94 88.00,432.52
|
||||
97.10,427.03 102.67,412.47 96.30,403.00
|
||||
90.20,393.94 79.30,394.82 77.84,399.23
|
||||
75.88,405.17 86.48,408.61 83.95,416.00
|
||||
80.85,425.04 70.46,429.95 63.53,421.89
|
||||
52.05,408.56 60.45,387.27 75.00,380.00
|
||||
81.81,376.59 90.26,377.98 97.00,380.88
|
||||
111.93,387.29 122.37,400.45 121.99,417.00
|
||||
121.77,426.44 117.00,432.41 114.00,441.00
|
||||
134.12,456.05 132.19,465.98 139.70,487.00
|
||||
139.70,487.00 150.00,511.00 150.00,511.00
|
||||
154.58,508.06 156.70,500.88 158.86,496.00
|
||||
158.86,496.00 173.88,456.00 173.88,456.00
|
||||
176.30,451.83 178.50,449.44 182.00,446.17
|
||||
184.18,444.13 187.09,442.28 187.16,438.99
|
||||
187.22,436.11 183.24,429.31 182.10,426.00
|
||||
178.60,415.88 179.96,405.84 186.05,397.00
|
||||
193.04,386.86 207.16,377.20 220.00,378.10
|
||||
226.39,378.54 230.60,381.57 234.96,386.02
|
||||
237.40,388.50 239.41,390.94 241.10,394.00
|
||||
242.95,397.37 244.35,402.17 244.67,406.00
|
||||
245.31,413.49 239.69,426.32 231.00,426.32
|
||||
225.54,426.32 215.21,418.13 219.17,410.00
|
||||
221.08,406.09 226.03,403.03 224.60,399.13
|
||||
222.56,393.57 212.08,394.80 206.80,402.04
|
||||
199.76,411.71 205.25,426.98 215.00,432.78
|
||||
220.67,436.15 225.68,436.07 232.00,436.00
|
||||
248.59,435.80 256.87,420.01 256.25,405.00
|
||||
255.46,385.59 243.85,368.47 229.00,356.67
|
||||
229.00,356.67 199.00,334.91 199.00,334.91
|
||||
178.41,315.97 170.11,293.55 169.04,266.00
|
||||
168.86,261.45 169.42,260.12 169.83,256.00
|
||||
171.68,237.52 175.72,219.42 184.86,203.00
|
||||
187.81,197.70 191.13,192.54 195.17,188.00
|
||||
198.85,183.87 205.21,178.07 207.30,173.00
|
||||
209.58,167.49 209.03,156.24 209.00,150.00
|
||||
208.96,141.05 206.86,128.71 199.82,122.53
|
||||
189.12,113.13 171.09,116.47 167.16,131.00
|
||||
166.09,134.96 165.84,142.93 171.07,144.26
|
||||
176.60,145.65 178.78,132.93 187.00,135.76
|
||||
197.16,139.25 194.57,151.17 187.96,156.61
|
||||
175.48,166.87 159.62,158.99 152.00,147.00
|
||||
147.12,151.03 144.91,154.84 139.00,158.10 Z
|
||||
M 40.01,231.00
|
||||
C 40.47,212.71 63.57,213.44 70.57,222.10
|
||||
75.55,228.27 71.97,239.24 70.00,246.00
|
||||
76.04,243.60 84.14,240.78 89.90,245.43
|
||||
98.02,251.99 98.83,274.59 88.96,279.83
|
||||
83.45,282.75 75.41,279.80 70.25,278.00
|
||||
72.71,284.38 75.13,295.92 70.25,301.90
|
||||
64.49,309.62 45.79,310.33 41.09,299.96
|
||||
38.28,293.77 41.00,284.11 43.00,278.00
|
||||
37.41,280.71 27.47,283.11 22.21,278.57
|
||||
14.50,271.92 14.65,248.17 25.02,243.85
|
||||
30.31,241.65 36.92,244.31 42.00,246.00
|
||||
40.65,239.31 39.84,238.24 40.01,231.00 Z
|
||||
M 231.70,222.19
|
||||
C 238.15,213.74 261.28,212.58 262.81,230.00
|
||||
263.20,234.41 261.26,242.64 260.00,247.00
|
||||
265.45,243.99 273.08,240.87 278.89,244.74
|
||||
288.54,251.04 287.71,274.46 278.89,279.55
|
||||
273.45,282.62 265.61,280.13 260.14,279.00
|
||||
262.00,285.92 264.89,295.43 260.14,301.90
|
||||
254.57,309.89 236.01,309.38 231.14,300.96
|
||||
226.98,293.77 230.35,285.34 232.00,278.00
|
||||
226.49,280.12 218.50,282.84 213.04,279.26
|
||||
203.56,273.04 204.01,249.77 214.04,244.45
|
||||
220.05,241.27 227.11,244.04 233.00,246.00
|
||||
230.08,239.33 226.77,228.64 231.70,222.19 Z
|
||||
M 61.75,239.00
|
||||
C 62.48,236.53 63.55,232.74 61.75,230.31
|
||||
59.91,227.14 53.85,227.55 51.61,230.31
|
||||
48.01,234.78 54.01,244.43 57.00,248.00
|
||||
57.00,248.00 61.75,239.00 61.75,239.00 Z
|
||||
M 251.40,231.15
|
||||
C 249.47,226.56 241.13,227.26 239.77,232.06
|
||||
238.64,236.03 243.05,243.58 245.00,247.00
|
||||
245.00,247.00 247.00,247.00 247.00,247.00
|
||||
249.13,242.95 253.38,235.86 251.40,231.15 Z
|
||||
M 42.00,246.00
|
||||
C 42.00,246.00 43.00,247.00 43.00,247.00
|
||||
43.00,247.00 43.00,246.00 43.00,246.00
|
||||
43.00,246.00 42.00,246.00 42.00,246.00 Z
|
||||
M 33.02,268.63
|
||||
C 36.46,268.58 43.30,264.30 41.75,260.20
|
||||
40.50,256.88 35.18,255.11 32.04,254.94
|
||||
24.26,258.48 26.66,268.73 33.02,268.63 Z
|
||||
M 263.11,265.77
|
||||
C 264.26,266.83 265.53,267.72 267.00,268.26
|
||||
277.08,271.96 277.16,255.24 269.96,254.82
|
||||
268.29,254.72 266.45,255.59 265.00,256.33
|
||||
265.00,256.33 259.00,260.00 259.00,260.00
|
||||
260.26,262.33 261.09,263.93 263.11,265.77 Z
|
||||
M 71.17,261.10
|
||||
C 69.32,265.86 77.69,269.58 80.96,269.24
|
||||
86.65,268.65 89.02,257.23 79.98,255.73
|
||||
76.89,256.30 72.44,257.83 71.17,261.10 Z
|
||||
M 222.02,269.36
|
||||
C 224.90,269.58 232.80,266.50 231.16,261.10
|
||||
230.01,257.34 225.42,256.06 222.02,255.76
|
||||
213.20,258.43 215.90,268.89 222.02,269.36 Z
|
||||
M 232.00,277.00
|
||||
C 232.00,277.00 233.00,278.00 233.00,278.00
|
||||
233.00,278.00 233.00,277.00 233.00,277.00
|
||||
233.00,277.00 232.00,277.00 232.00,277.00 Z
|
||||
M 51.21,285.00
|
||||
C 50.51,287.47 49.47,291.30 51.21,293.63
|
||||
53.01,296.73 58.99,296.49 61.22,293.63
|
||||
62.19,291.78 61.92,288.99 61.22,287.00
|
||||
61.13,285.48 60.37,283.39 59.59,282.06
|
||||
58.12,279.56 57.41,279.28 55.00,278.00
|
||||
53.50,280.43 52.35,282.28 51.21,285.00 Z
|
||||
M 243.00,282.06
|
||||
C 242.09,283.44 241.34,285.40 240.93,287.00
|
||||
238.31,297.20 248.93,296.99 251.01,294.40
|
||||
252.66,292.27 251.85,287.37 251.01,285.00
|
||||
251.01,285.00 248.00,278.00 248.00,278.00
|
||||
245.53,279.24 244.61,279.61 243.00,282.06 Z
|
||||
M 117.22,465.00
|
||||
C 113.67,458.32 109.96,452.92 102.00,452.00
|
||||
102.00,452.00 108.00,460.00 108.00,460.00
|
||||
108.00,460.00 103.00,460.00 103.00,460.00
|
||||
104.22,462.52 104.67,463.57 107.06,465.30
|
||||
109.89,467.36 119.36,469.55 113.00,474.00
|
||||
113.00,474.00 118.00,487.00 118.00,487.00
|
||||
118.00,487.00 110.00,482.00 110.00,482.00
|
||||
110.00,482.00 109.00,485.00 109.00,485.00
|
||||
109.00,485.00 97.00,468.00 97.00,468.00
|
||||
97.00,468.00 95.00,478.00 95.00,478.00
|
||||
95.00,478.00 93.00,475.00 93.00,475.00
|
||||
95.74,492.44 114.18,500.57 130.00,503.00
|
||||
127.68,490.66 123.11,476.08 117.22,465.00 Z
|
||||
M 185.26,465.00
|
||||
C 180.28,474.69 173.50,492.19 173.00,503.00
|
||||
183.53,501.37 197.90,495.48 204.61,487.00
|
||||
207.94,482.80 210.94,476.29 209.00,471.00
|
||||
209.00,471.00 205.00,478.00 205.00,478.00
|
||||
205.00,478.00 204.00,469.00 204.00,469.00
|
||||
204.00,469.00 196.00,483.00 196.00,483.00
|
||||
196.00,483.00 193.00,481.00 193.00,481.00
|
||||
193.00,481.00 185.00,485.00 185.00,485.00
|
||||
189.06,477.65 189.03,476.70 186.00,469.00
|
||||
192.55,467.46 196.28,465.79 200.00,460.00
|
||||
200.00,460.00 194.00,460.00 194.00,460.00
|
||||
194.00,460.00 201.00,452.00 201.00,452.00
|
||||
192.22,452.94 189.08,457.58 185.26,465.00 Z
|
||||
M 40.78,507.00
|
||||
C 34.37,520.62 32.00,540.03 32.00,555.00
|
||||
38.07,553.86 42.88,550.64 48.00,547.31
|
||||
57.65,541.02 68.95,532.43 75.56,523.00
|
||||
79.18,517.84 83.42,509.31 81.00,503.00
|
||||
81.00,503.00 72.00,517.00 72.00,517.00
|
||||
72.00,517.00 69.00,508.00 69.00,508.00
|
||||
62.29,523.58 64.21,517.28 62.00,534.00
|
||||
60.44,533.01 57.80,531.08 56.00,530.88
|
||||
52.38,530.48 43.94,537.65 41.00,540.00
|
||||
41.00,540.00 48.00,522.00 48.00,522.00
|
||||
48.00,522.00 43.00,523.00 43.00,523.00
|
||||
50.88,509.51 56.47,513.30 63.00,500.00
|
||||
63.00,500.00 49.00,501.00 49.00,501.00
|
||||
49.00,501.00 63.00,489.00 63.00,489.00
|
||||
50.95,490.09 45.66,496.64 40.78,507.00 Z
|
||||
M 259.12,502.00
|
||||
C 255.45,495.69 247.06,487.06 239.00,490.00
|
||||
244.74,492.62 248.99,496.14 253.00,501.00
|
||||
253.00,501.00 240.00,500.00 240.00,500.00
|
||||
244.84,512.35 252.70,509.18 259.00,523.00
|
||||
259.00,523.00 255.00,522.00 255.00,522.00
|
||||
255.00,522.00 262.00,540.00 262.00,540.00
|
||||
262.00,540.00 246.00,529.00 246.00,529.00
|
||||
246.00,529.00 240.00,534.00 240.00,534.00
|
||||
239.92,524.67 238.48,514.13 232.00,507.00
|
||||
232.00,507.00 230.00,516.00 230.00,516.00
|
||||
230.00,516.00 221.00,502.00 221.00,502.00
|
||||
221.02,508.02 221.36,512.39 223.90,518.00
|
||||
230.90,533.43 255.64,549.38 271.00,556.00
|
||||
269.52,537.73 268.61,518.28 259.12,502.00 Z
|
||||
M 31.00,555.00
|
||||
C 31.00,555.00 32.00,556.00 32.00,556.00
|
||||
32.00,556.00 32.00,555.00 32.00,555.00
|
||||
32.00,555.00 31.00,555.00 31.00,555.00 Z
|
||||
M 15.00,613.00
|
||||
C 15.00,613.00 11.00,609.00 11.00,609.00
|
||||
11.00,609.00 15.00,613.00 15.00,613.00 Z" />
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="3.7in" height="6.81111in"
|
||||
viewBox="0 0 333 613">
|
||||
<path id="Selection"
|
||||
fill="white" stroke="white" stroke-width="1"
|
||||
d="M 38.91,0.85
|
||||
C 42.10,2.25 44.87,6.35 47.13,9.00
|
||||
51.67,14.32 55.78,19.11 61.00,23.83
|
||||
61.00,23.83 93.91,48.09 93.91,48.09
|
||||
106.74,60.82 107.03,73.36 107.00,90.00
|
||||
106.99,94.40 107.06,95.64 106.00,100.00
|
||||
117.01,95.98 133.45,97.51 143.00,104.61
|
||||
146.50,107.22 149.16,110.72 152.00,114.00
|
||||
159.91,97.94 180.33,95.21 196.00,100.00
|
||||
196.00,100.00 195.00,87.00 195.00,87.00
|
||||
194.87,75.09 197.09,62.65 204.53,53.00
|
||||
213.56,41.28 229.19,35.65 242.00,23.00
|
||||
242.00,23.00 261.09,2.43 261.09,2.43
|
||||
263.46,0.57 267.81,-0.79 270.69,0.60
|
||||
273.17,1.80 272.90,4.66 273.16,7.00
|
||||
273.16,7.00 274.00,25.00 274.00,25.00
|
||||
274.00,25.00 273.09,37.00 273.09,37.00
|
||||
273.09,37.00 271.36,64.00 271.36,64.00
|
||||
270.48,69.74 264.29,90.72 261.74,96.00
|
||||
256.62,106.60 251.87,114.44 241.00,120.02
|
||||
234.89,123.15 227.79,124.45 221.00,125.00
|
||||
221.00,125.00 224.92,142.00 224.92,142.00
|
||||
224.92,142.00 224.92,166.00 224.92,166.00
|
||||
242.62,160.90 263.01,160.66 280.00,168.31
|
||||
293.53,174.41 296.84,178.92 308.00,186.00
|
||||
308.00,186.00 308.00,0.00 308.00,0.00
|
||||
308.00,0.00 332.00,0.00 332.00,0.00
|
||||
332.00,0.00 331.00,17.00 331.00,17.00
|
||||
331.00,17.00 331.00,613.00 331.00,613.00
|
||||
331.00,613.00 308.00,613.00 308.00,613.00
|
||||
308.00,613.00 308.00,241.00 308.00,241.00
|
||||
307.99,231.75 306.55,221.23 302.10,213.00
|
||||
288.61,188.07 257.79,181.52 233.00,192.44
|
||||
210.21,202.48 194.19,228.19 189.40,252.00
|
||||
188.60,255.97 187.04,266.25 187.32,270.00
|
||||
188.52,285.98 193.22,301.39 203.47,314.00
|
||||
223.80,339.02 246.26,337.31 264.56,359.00
|
||||
270.38,365.90 275.67,374.38 278.48,383.00
|
||||
285.19,403.56 280.04,433.61 262.00,447.08
|
||||
248.76,456.96 237.61,457.00 222.00,457.00
|
||||
222.00,457.00 222.00,472.00 222.00,472.00
|
||||
227.45,470.56 231.31,469.80 237.00,470.04
|
||||
271.03,471.48 280.20,508.30 283.16,536.00
|
||||
283.16,536.00 285.00,554.00 285.00,554.00
|
||||
285.00,554.00 285.00,584.00 285.00,584.00
|
||||
285.00,592.60 286.04,597.06 282.00,605.00
|
||||
282.00,605.00 280.00,605.00 280.00,605.00
|
||||
273.63,590.73 257.53,572.97 245.00,563.75
|
||||
233.73,555.47 221.76,550.51 214.26,538.00
|
||||
206.64,525.31 208.00,516.94 208.00,503.00
|
||||
197.20,510.72 180.36,516.84 167.00,517.00
|
||||
167.00,517.00 153.00,517.00 153.00,517.00
|
||||
128.13,517.00 116.81,517.53 95.00,503.00
|
||||
95.00,512.57 95.66,521.87 92.07,531.00
|
||||
84.43,550.44 63.08,557.28 49.00,571.01
|
||||
43.81,576.08 38.47,581.15 34.16,587.00
|
||||
29.38,593.48 25.41,600.99 19.00,606.00
|
||||
17.83,597.10 16.99,587.98 17.00,579.00
|
||||
17.00,579.00 18.00,562.00 18.00,562.00
|
||||
18.03,540.33 19.06,521.50 27.20,501.00
|
||||
36.46,477.70 55.01,464.78 80.00,472.00
|
||||
80.00,472.00 80.00,457.00 80.00,457.00
|
||||
65.83,457.00 54.18,456.94 42.00,448.21
|
||||
33.07,441.82 27.64,433.30 24.34,423.00
|
||||
17.33,401.12 21.55,378.73 36.32,361.00
|
||||
57.56,335.52 81.40,338.69 100.57,312.00
|
||||
111.33,297.02 115.21,282.24 115.00,264.00
|
||||
114.90,255.95 112.57,248.54 110.00,241.00
|
||||
98.53,207.32 69.44,180.62 32.00,188.67
|
||||
16.40,192.02 11.88,201.50 0.00,210.00
|
||||
0.00,210.00 0.00,190.00 0.00,190.00
|
||||
0.00,187.93 -0.11,184.92 0.60,183.00
|
||||
2.61,177.60 11.95,172.71 17.00,170.26
|
||||
28.16,164.83 46.62,160.98 59.00,162.17
|
||||
59.00,162.17 77.00,165.00 77.00,165.00
|
||||
77.00,150.61 76.02,138.66 82.00,125.00
|
||||
76.57,124.88 67.93,123.84 63.00,121.65
|
||||
52.90,117.17 46.50,108.63 41.76,99.00
|
||||
33.56,82.38 31.19,63.25 29.91,45.00
|
||||
29.91,45.00 29.00,33.00 29.00,33.00
|
||||
29.00,33.00 29.00,15.00 29.00,15.00
|
||||
29.00,15.00 30.00,0.00 30.00,0.00
|
||||
32.69,0.00 36.46,-0.22 38.91,0.85 Z
|
||||
M 0.00,21.00
|
||||
C 0.00,21.00 1.00,16.00 1.00,16.00
|
||||
1.00,16.00 0.00,21.00 0.00,21.00 Z
|
||||
M 44.92,54.00
|
||||
C 46.25,65.78 49.73,85.39 56.63,95.00
|
||||
60.55,100.44 68.84,107.61 76.00,105.00
|
||||
70.26,102.38 66.01,98.86 62.00,94.00
|
||||
62.00,94.00 75.00,95.00 75.00,95.00
|
||||
69.29,83.38 62.16,83.39 54.00,72.00
|
||||
54.00,72.00 60.00,73.00 60.00,73.00
|
||||
60.00,73.00 53.00,55.00 53.00,55.00
|
||||
53.00,55.00 69.00,66.00 69.00,66.00
|
||||
69.00,66.00 73.00,61.00 73.00,61.00
|
||||
75.96,70.10 75.82,81.26 83.00,88.00
|
||||
83.00,88.00 84.00,77.00 84.00,77.00
|
||||
84.00,77.00 93.00,93.00 93.00,93.00
|
||||
94.77,84.05 90.64,74.94 85.18,68.00
|
||||
75.57,55.80 58.37,46.61 44.92,39.00
|
||||
43.10,43.78 44.25,49.04 44.92,54.00 Z
|
||||
M 216.02,70.00
|
||||
C 210.90,76.55 206.70,85.69 210.00,94.00
|
||||
212.53,86.78 213.81,84.71 219.00,79.00
|
||||
219.00,79.00 221.00,88.00 221.00,88.00
|
||||
225.80,76.86 227.33,73.36 229.00,61.00
|
||||
230.31,61.95 232.61,63.92 234.17,64.12
|
||||
237.53,64.54 246.22,57.22 249.00,55.00
|
||||
249.00,55.00 242.00,73.00 242.00,73.00
|
||||
242.00,73.00 248.00,72.00 248.00,72.00
|
||||
240.20,84.26 231.65,84.31 228.00,95.00
|
||||
228.00,95.00 241.00,94.00 241.00,94.00
|
||||
241.00,94.00 227.00,106.00 227.00,106.00
|
||||
232.34,105.52 236.78,104.21 240.96,100.66
|
||||
252.09,91.21 257.06,65.19 258.02,51.00
|
||||
258.02,51.00 259.00,39.00 259.00,39.00
|
||||
244.97,43.90 225.08,58.38 216.02,70.00 Z
|
||||
M 139.00,158.10
|
||||
C 128.24,164.03 114.21,161.06 109.23,149.00
|
||||
105.73,140.53 113.58,134.30 118.99,135.47
|
||||
124.96,136.77 126.56,145.55 131.79,144.12
|
||||
136.58,142.81 136.22,134.68 135.24,131.00
|
||||
130.94,114.96 110.25,112.81 100.39,125.02
|
||||
92.24,135.11 93.85,152.60 94.00,165.00
|
||||
94.15,177.16 99.37,178.64 106.83,187.00
|
||||
111.23,191.93 115.14,198.15 118.22,204.00
|
||||
132.21,230.57 137.33,264.87 129.26,294.00
|
||||
125.06,309.13 116.73,323.30 105.00,333.83
|
||||
101.22,337.22 97.13,339.83 93.00,342.72
|
||||
74.76,355.49 59.04,365.29 50.02,387.00
|
||||
44.66,399.90 43.87,412.82 51.47,425.00
|
||||
56.26,432.70 62.07,435.89 71.00,436.00
|
||||
77.37,436.07 82.33,435.94 88.00,432.52
|
||||
97.10,427.03 102.67,412.47 96.30,403.00
|
||||
90.20,393.94 79.30,394.82 77.84,399.23
|
||||
75.88,405.17 86.48,408.61 83.95,416.00
|
||||
80.85,425.04 70.46,429.95 63.53,421.89
|
||||
52.05,408.56 60.45,387.27 75.00,380.00
|
||||
81.81,376.59 90.26,377.98 97.00,380.88
|
||||
111.93,387.29 122.37,400.45 121.99,417.00
|
||||
121.77,426.44 117.00,432.41 114.00,441.00
|
||||
134.12,456.05 132.19,465.98 139.70,487.00
|
||||
139.70,487.00 150.00,511.00 150.00,511.00
|
||||
154.58,508.06 156.70,500.88 158.86,496.00
|
||||
158.86,496.00 173.88,456.00 173.88,456.00
|
||||
176.30,451.83 178.50,449.44 182.00,446.17
|
||||
184.18,444.13 187.09,442.28 187.16,438.99
|
||||
187.22,436.11 183.24,429.31 182.10,426.00
|
||||
178.60,415.88 179.96,405.84 186.05,397.00
|
||||
193.04,386.86 207.16,377.20 220.00,378.10
|
||||
226.39,378.54 230.60,381.57 234.96,386.02
|
||||
237.40,388.50 239.41,390.94 241.10,394.00
|
||||
242.95,397.37 244.35,402.17 244.67,406.00
|
||||
245.31,413.49 239.69,426.32 231.00,426.32
|
||||
225.54,426.32 215.21,418.13 219.17,410.00
|
||||
221.08,406.09 226.03,403.03 224.60,399.13
|
||||
222.56,393.57 212.08,394.80 206.80,402.04
|
||||
199.76,411.71 205.25,426.98 215.00,432.78
|
||||
220.67,436.15 225.68,436.07 232.00,436.00
|
||||
248.59,435.80 256.87,420.01 256.25,405.00
|
||||
255.46,385.59 243.85,368.47 229.00,356.67
|
||||
229.00,356.67 199.00,334.91 199.00,334.91
|
||||
178.41,315.97 170.11,293.55 169.04,266.00
|
||||
168.86,261.45 169.42,260.12 169.83,256.00
|
||||
171.68,237.52 175.72,219.42 184.86,203.00
|
||||
187.81,197.70 191.13,192.54 195.17,188.00
|
||||
198.85,183.87 205.21,178.07 207.30,173.00
|
||||
209.58,167.49 209.03,156.24 209.00,150.00
|
||||
208.96,141.05 206.86,128.71 199.82,122.53
|
||||
189.12,113.13 171.09,116.47 167.16,131.00
|
||||
166.09,134.96 165.84,142.93 171.07,144.26
|
||||
176.60,145.65 178.78,132.93 187.00,135.76
|
||||
197.16,139.25 194.57,151.17 187.96,156.61
|
||||
175.48,166.87 159.62,158.99 152.00,147.00
|
||||
147.12,151.03 144.91,154.84 139.00,158.10 Z
|
||||
M 40.01,231.00
|
||||
C 40.47,212.71 63.57,213.44 70.57,222.10
|
||||
75.55,228.27 71.97,239.24 70.00,246.00
|
||||
76.04,243.60 84.14,240.78 89.90,245.43
|
||||
98.02,251.99 98.83,274.59 88.96,279.83
|
||||
83.45,282.75 75.41,279.80 70.25,278.00
|
||||
72.71,284.38 75.13,295.92 70.25,301.90
|
||||
64.49,309.62 45.79,310.33 41.09,299.96
|
||||
38.28,293.77 41.00,284.11 43.00,278.00
|
||||
37.41,280.71 27.47,283.11 22.21,278.57
|
||||
14.50,271.92 14.65,248.17 25.02,243.85
|
||||
30.31,241.65 36.92,244.31 42.00,246.00
|
||||
40.65,239.31 39.84,238.24 40.01,231.00 Z
|
||||
M 231.70,222.19
|
||||
C 238.15,213.74 261.28,212.58 262.81,230.00
|
||||
263.20,234.41 261.26,242.64 260.00,247.00
|
||||
265.45,243.99 273.08,240.87 278.89,244.74
|
||||
288.54,251.04 287.71,274.46 278.89,279.55
|
||||
273.45,282.62 265.61,280.13 260.14,279.00
|
||||
262.00,285.92 264.89,295.43 260.14,301.90
|
||||
254.57,309.89 236.01,309.38 231.14,300.96
|
||||
226.98,293.77 230.35,285.34 232.00,278.00
|
||||
226.49,280.12 218.50,282.84 213.04,279.26
|
||||
203.56,273.04 204.01,249.77 214.04,244.45
|
||||
220.05,241.27 227.11,244.04 233.00,246.00
|
||||
230.08,239.33 226.77,228.64 231.70,222.19 Z
|
||||
M 61.75,239.00
|
||||
C 62.48,236.53 63.55,232.74 61.75,230.31
|
||||
59.91,227.14 53.85,227.55 51.61,230.31
|
||||
48.01,234.78 54.01,244.43 57.00,248.00
|
||||
57.00,248.00 61.75,239.00 61.75,239.00 Z
|
||||
M 251.40,231.15
|
||||
C 249.47,226.56 241.13,227.26 239.77,232.06
|
||||
238.64,236.03 243.05,243.58 245.00,247.00
|
||||
245.00,247.00 247.00,247.00 247.00,247.00
|
||||
249.13,242.95 253.38,235.86 251.40,231.15 Z
|
||||
M 42.00,246.00
|
||||
C 42.00,246.00 43.00,247.00 43.00,247.00
|
||||
43.00,247.00 43.00,246.00 43.00,246.00
|
||||
43.00,246.00 42.00,246.00 42.00,246.00 Z
|
||||
M 33.02,268.63
|
||||
C 36.46,268.58 43.30,264.30 41.75,260.20
|
||||
40.50,256.88 35.18,255.11 32.04,254.94
|
||||
24.26,258.48 26.66,268.73 33.02,268.63 Z
|
||||
M 263.11,265.77
|
||||
C 264.26,266.83 265.53,267.72 267.00,268.26
|
||||
277.08,271.96 277.16,255.24 269.96,254.82
|
||||
268.29,254.72 266.45,255.59 265.00,256.33
|
||||
265.00,256.33 259.00,260.00 259.00,260.00
|
||||
260.26,262.33 261.09,263.93 263.11,265.77 Z
|
||||
M 71.17,261.10
|
||||
C 69.32,265.86 77.69,269.58 80.96,269.24
|
||||
86.65,268.65 89.02,257.23 79.98,255.73
|
||||
76.89,256.30 72.44,257.83 71.17,261.10 Z
|
||||
M 222.02,269.36
|
||||
C 224.90,269.58 232.80,266.50 231.16,261.10
|
||||
230.01,257.34 225.42,256.06 222.02,255.76
|
||||
213.20,258.43 215.90,268.89 222.02,269.36 Z
|
||||
M 232.00,277.00
|
||||
C 232.00,277.00 233.00,278.00 233.00,278.00
|
||||
233.00,278.00 233.00,277.00 233.00,277.00
|
||||
233.00,277.00 232.00,277.00 232.00,277.00 Z
|
||||
M 51.21,285.00
|
||||
C 50.51,287.47 49.47,291.30 51.21,293.63
|
||||
53.01,296.73 58.99,296.49 61.22,293.63
|
||||
62.19,291.78 61.92,288.99 61.22,287.00
|
||||
61.13,285.48 60.37,283.39 59.59,282.06
|
||||
58.12,279.56 57.41,279.28 55.00,278.00
|
||||
53.50,280.43 52.35,282.28 51.21,285.00 Z
|
||||
M 243.00,282.06
|
||||
C 242.09,283.44 241.34,285.40 240.93,287.00
|
||||
238.31,297.20 248.93,296.99 251.01,294.40
|
||||
252.66,292.27 251.85,287.37 251.01,285.00
|
||||
251.01,285.00 248.00,278.00 248.00,278.00
|
||||
245.53,279.24 244.61,279.61 243.00,282.06 Z
|
||||
M 117.22,465.00
|
||||
C 113.67,458.32 109.96,452.92 102.00,452.00
|
||||
102.00,452.00 108.00,460.00 108.00,460.00
|
||||
108.00,460.00 103.00,460.00 103.00,460.00
|
||||
104.22,462.52 104.67,463.57 107.06,465.30
|
||||
109.89,467.36 119.36,469.55 113.00,474.00
|
||||
113.00,474.00 118.00,487.00 118.00,487.00
|
||||
118.00,487.00 110.00,482.00 110.00,482.00
|
||||
110.00,482.00 109.00,485.00 109.00,485.00
|
||||
109.00,485.00 97.00,468.00 97.00,468.00
|
||||
97.00,468.00 95.00,478.00 95.00,478.00
|
||||
95.00,478.00 93.00,475.00 93.00,475.00
|
||||
95.74,492.44 114.18,500.57 130.00,503.00
|
||||
127.68,490.66 123.11,476.08 117.22,465.00 Z
|
||||
M 185.26,465.00
|
||||
C 180.28,474.69 173.50,492.19 173.00,503.00
|
||||
183.53,501.37 197.90,495.48 204.61,487.00
|
||||
207.94,482.80 210.94,476.29 209.00,471.00
|
||||
209.00,471.00 205.00,478.00 205.00,478.00
|
||||
205.00,478.00 204.00,469.00 204.00,469.00
|
||||
204.00,469.00 196.00,483.00 196.00,483.00
|
||||
196.00,483.00 193.00,481.00 193.00,481.00
|
||||
193.00,481.00 185.00,485.00 185.00,485.00
|
||||
189.06,477.65 189.03,476.70 186.00,469.00
|
||||
192.55,467.46 196.28,465.79 200.00,460.00
|
||||
200.00,460.00 194.00,460.00 194.00,460.00
|
||||
194.00,460.00 201.00,452.00 201.00,452.00
|
||||
192.22,452.94 189.08,457.58 185.26,465.00 Z
|
||||
M 40.78,507.00
|
||||
C 34.37,520.62 32.00,540.03 32.00,555.00
|
||||
38.07,553.86 42.88,550.64 48.00,547.31
|
||||
57.65,541.02 68.95,532.43 75.56,523.00
|
||||
79.18,517.84 83.42,509.31 81.00,503.00
|
||||
81.00,503.00 72.00,517.00 72.00,517.00
|
||||
72.00,517.00 69.00,508.00 69.00,508.00
|
||||
62.29,523.58 64.21,517.28 62.00,534.00
|
||||
60.44,533.01 57.80,531.08 56.00,530.88
|
||||
52.38,530.48 43.94,537.65 41.00,540.00
|
||||
41.00,540.00 48.00,522.00 48.00,522.00
|
||||
48.00,522.00 43.00,523.00 43.00,523.00
|
||||
50.88,509.51 56.47,513.30 63.00,500.00
|
||||
63.00,500.00 49.00,501.00 49.00,501.00
|
||||
49.00,501.00 63.00,489.00 63.00,489.00
|
||||
50.95,490.09 45.66,496.64 40.78,507.00 Z
|
||||
M 259.12,502.00
|
||||
C 255.45,495.69 247.06,487.06 239.00,490.00
|
||||
244.74,492.62 248.99,496.14 253.00,501.00
|
||||
253.00,501.00 240.00,500.00 240.00,500.00
|
||||
244.84,512.35 252.70,509.18 259.00,523.00
|
||||
259.00,523.00 255.00,522.00 255.00,522.00
|
||||
255.00,522.00 262.00,540.00 262.00,540.00
|
||||
262.00,540.00 246.00,529.00 246.00,529.00
|
||||
246.00,529.00 240.00,534.00 240.00,534.00
|
||||
239.92,524.67 238.48,514.13 232.00,507.00
|
||||
232.00,507.00 230.00,516.00 230.00,516.00
|
||||
230.00,516.00 221.00,502.00 221.00,502.00
|
||||
221.02,508.02 221.36,512.39 223.90,518.00
|
||||
230.90,533.43 255.64,549.38 271.00,556.00
|
||||
269.52,537.73 268.61,518.28 259.12,502.00 Z
|
||||
M 31.00,555.00
|
||||
C 31.00,555.00 32.00,556.00 32.00,556.00
|
||||
32.00,556.00 32.00,555.00 32.00,555.00
|
||||
32.00,555.00 31.00,555.00 31.00,555.00 Z
|
||||
M 15.00,613.00
|
||||
C 15.00,613.00 11.00,609.00 11.00,609.00
|
||||
11.00,609.00 15.00,613.00 15.00,613.00 Z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
@@ -1,327 +1,327 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="3.7in" height="6.81111in"
|
||||
viewBox="0 0 333 613">
|
||||
<path id="Selection"
|
||||
fill="white" stroke="white" stroke-width="1"
|
||||
d="M 294.09,612.15
|
||||
C 290.90,610.75 288.13,606.65 285.87,604.00
|
||||
281.33,598.68 277.22,593.89 272.00,589.17
|
||||
272.00,589.17 239.09,564.91 239.09,564.91
|
||||
226.26,552.18 225.97,539.64 226.00,523.00
|
||||
226.01,518.60 225.94,517.36 227.00,513.00
|
||||
215.99,517.02 199.55,515.49 190.00,508.39
|
||||
186.50,505.78 183.84,502.28 181.00,499.00
|
||||
173.09,515.06 152.67,517.79 137.00,513.00
|
||||
137.00,513.00 138.00,526.00 138.00,526.00
|
||||
138.13,537.91 135.91,550.35 128.47,560.00
|
||||
119.44,571.72 103.81,577.35 91.00,590.00
|
||||
91.00,590.00 71.91,610.57 71.91,610.57
|
||||
69.54,612.43 65.19,613.79 62.31,612.40
|
||||
59.83,611.20 60.10,608.34 59.84,606.00
|
||||
59.84,606.00 59.00,588.00 59.00,588.00
|
||||
59.00,588.00 59.91,576.00 59.91,576.00
|
||||
59.91,576.00 61.64,549.00 61.64,549.00
|
||||
62.52,543.26 68.71,522.28 71.26,517.00
|
||||
76.38,506.40 81.13,498.56 92.00,492.98
|
||||
98.11,489.85 105.21,488.55 112.00,488.00
|
||||
112.00,488.00 108.08,471.00 108.08,471.00
|
||||
108.08,471.00 108.08,447.00 108.08,447.00
|
||||
90.38,452.10 69.99,452.34 53.00,444.69
|
||||
39.47,438.59 36.16,434.08 25.00,427.00
|
||||
25.00,427.00 25.00,613.00 25.00,613.00
|
||||
25.00,613.00 1.00,613.00 1.00,613.00
|
||||
1.00,613.00 2.00,596.00 2.00,596.00
|
||||
2.00,596.00 2.00,0.00 2.00,0.00
|
||||
2.00,0.00 25.00,0.00 25.00,0.00
|
||||
25.00,0.00 25.00,372.00 25.00,372.00
|
||||
25.01,381.25 26.45,391.77 30.90,400.00
|
||||
44.39,424.93 75.21,431.48 100.00,420.56
|
||||
122.79,410.52 138.81,384.81 143.60,361.00
|
||||
144.40,357.03 145.96,346.75 145.68,343.00
|
||||
144.48,327.02 139.78,311.61 129.53,299.00
|
||||
109.20,273.98 86.74,275.69 68.44,254.00
|
||||
62.62,247.10 57.33,238.62 54.52,230.00
|
||||
47.81,209.44 52.96,179.39 71.00,165.92
|
||||
84.24,156.04 95.39,156.00 111.00,156.00
|
||||
111.00,156.00 111.00,141.00 111.00,141.00
|
||||
105.55,142.44 101.69,143.20 96.00,142.96
|
||||
61.97,141.52 52.80,104.70 49.84,77.00
|
||||
49.84,77.00 48.00,59.00 48.00,59.00
|
||||
48.00,59.00 48.00,29.00 48.00,29.00
|
||||
48.00,20.40 46.96,15.94 51.00,8.00
|
||||
51.00,8.00 53.00,8.00 53.00,8.00
|
||||
59.37,22.27 75.47,40.03 88.00,49.25
|
||||
99.27,57.53 111.24,62.49 118.74,75.00
|
||||
126.36,87.69 125.00,96.06 125.00,110.00
|
||||
135.80,102.28 152.64,96.16 166.00,96.00
|
||||
166.00,96.00 180.00,96.00 180.00,96.00
|
||||
204.87,96.00 216.19,95.47 238.00,110.00
|
||||
238.00,100.43 237.34,91.13 240.93,82.00
|
||||
248.57,62.56 269.92,55.72 284.00,41.99
|
||||
289.19,36.92 294.53,31.85 298.84,26.00
|
||||
303.62,19.52 307.59,12.01 314.00,7.00
|
||||
315.17,15.90 316.01,25.02 316.00,34.00
|
||||
316.00,34.00 315.00,51.00 315.00,51.00
|
||||
314.97,72.67 313.94,91.50 305.80,112.00
|
||||
296.54,135.30 277.99,148.22 253.00,141.00
|
||||
253.00,141.00 253.00,156.00 253.00,156.00
|
||||
267.17,156.00 278.82,156.06 291.00,164.79
|
||||
299.93,171.18 305.36,179.70 308.66,190.00
|
||||
315.67,211.88 311.45,234.27 296.68,252.00
|
||||
275.44,277.48 251.60,274.31 232.43,301.00
|
||||
221.67,315.98 217.79,330.76 218.00,349.00
|
||||
218.10,357.05 220.43,364.46 223.00,372.00
|
||||
234.47,405.68 263.56,432.38 301.00,424.33
|
||||
316.60,420.98 321.12,411.50 333.00,403.00
|
||||
333.00,403.00 333.00,423.00 333.00,423.00
|
||||
333.00,425.07 333.11,428.08 332.40,430.00
|
||||
330.39,435.40 321.05,440.29 316.00,442.74
|
||||
304.84,448.17 286.38,452.02 274.00,450.83
|
||||
274.00,450.83 256.00,448.00 256.00,448.00
|
||||
256.00,462.39 256.98,474.34 251.00,488.00
|
||||
256.43,488.12 265.07,489.16 270.00,491.35
|
||||
280.10,495.83 286.50,504.37 291.24,514.00
|
||||
299.44,530.62 301.81,549.75 303.09,568.00
|
||||
303.09,568.00 304.00,580.00 304.00,580.00
|
||||
304.00,580.00 304.00,598.00 304.00,598.00
|
||||
304.00,598.00 303.00,613.00 303.00,613.00
|
||||
300.31,613.00 296.54,613.22 294.09,612.15 Z
|
||||
M 333.00,592.00
|
||||
C 333.00,592.00 332.00,597.00 332.00,597.00
|
||||
332.00,597.00 333.00,592.00 333.00,592.00 Z
|
||||
M 288.08,559.00
|
||||
C 286.75,547.22 283.27,527.61 276.37,518.00
|
||||
272.45,512.56 264.16,505.39 257.00,508.00
|
||||
262.74,510.62 266.99,514.14 271.00,519.00
|
||||
271.00,519.00 258.00,518.00 258.00,518.00
|
||||
263.71,529.62 270.84,529.61 279.00,541.00
|
||||
279.00,541.00 273.00,540.00 273.00,540.00
|
||||
273.00,540.00 280.00,558.00 280.00,558.00
|
||||
280.00,558.00 264.00,547.00 264.00,547.00
|
||||
264.00,547.00 260.00,552.00 260.00,552.00
|
||||
257.04,542.90 257.18,531.74 250.00,525.00
|
||||
250.00,525.00 249.00,536.00 249.00,536.00
|
||||
249.00,536.00 240.00,520.00 240.00,520.00
|
||||
238.23,528.95 242.36,538.06 247.82,545.00
|
||||
257.43,557.20 274.63,566.39 288.08,574.00
|
||||
289.90,569.22 288.75,563.96 288.08,559.00 Z
|
||||
M 116.98,543.00
|
||||
C 122.10,536.45 126.30,527.31 123.00,519.00
|
||||
120.47,526.22 119.19,528.29 114.00,534.00
|
||||
114.00,534.00 112.00,525.00 112.00,525.00
|
||||
107.20,536.14 105.67,539.64 104.00,552.00
|
||||
102.69,551.05 100.39,549.08 98.83,548.88
|
||||
95.47,548.46 86.78,555.78 84.00,558.00
|
||||
84.00,558.00 91.00,540.00 91.00,540.00
|
||||
91.00,540.00 85.00,541.00 85.00,541.00
|
||||
92.80,528.74 101.35,528.69 105.00,518.00
|
||||
105.00,518.00 92.00,519.00 92.00,519.00
|
||||
92.00,519.00 106.00,507.00 106.00,507.00
|
||||
100.66,507.48 96.22,508.79 92.04,512.34
|
||||
80.91,521.79 75.94,547.81 74.98,562.00
|
||||
74.98,562.00 74.00,574.00 74.00,574.00
|
||||
88.03,569.10 107.92,554.62 116.98,543.00 Z
|
||||
M 194.00,454.90
|
||||
C 204.76,448.97 218.79,451.94 223.77,464.00
|
||||
227.27,472.47 219.42,478.70 214.01,477.53
|
||||
208.04,476.23 206.44,467.45 201.21,468.88
|
||||
196.42,470.19 196.78,478.32 197.76,482.00
|
||||
202.06,498.04 222.75,500.19 232.61,487.98
|
||||
240.76,477.89 239.15,460.40 239.00,448.00
|
||||
238.85,435.84 233.63,434.36 226.17,426.00
|
||||
221.77,421.07 217.86,414.85 214.78,409.00
|
||||
200.79,382.43 195.67,348.13 203.74,319.00
|
||||
207.94,303.87 216.27,289.70 228.00,279.17
|
||||
231.78,275.78 235.87,273.17 240.00,270.28
|
||||
258.24,257.51 273.96,247.71 282.98,226.00
|
||||
288.34,213.10 289.13,200.18 281.53,188.00
|
||||
276.74,180.30 270.93,177.11 262.00,177.00
|
||||
255.63,176.93 250.67,177.06 245.00,180.48
|
||||
235.90,185.97 230.33,200.53 236.70,210.00
|
||||
242.80,219.06 253.70,218.18 255.16,213.77
|
||||
257.12,207.83 246.52,204.39 249.05,197.00
|
||||
252.15,187.96 262.54,183.05 269.47,191.11
|
||||
280.95,204.44 272.55,225.73 258.00,233.00
|
||||
251.19,236.41 242.74,235.02 236.00,232.12
|
||||
221.07,225.71 210.63,212.55 211.01,196.00
|
||||
211.23,186.56 216.00,180.59 219.00,172.00
|
||||
198.88,156.95 200.81,147.02 193.30,126.00
|
||||
193.30,126.00 183.00,102.00 183.00,102.00
|
||||
178.42,104.94 176.30,112.12 174.14,117.00
|
||||
174.14,117.00 159.12,157.00 159.12,157.00
|
||||
156.70,161.17 154.50,163.56 151.00,166.83
|
||||
148.82,168.87 145.91,170.72 145.84,174.01
|
||||
145.78,176.89 149.76,183.69 150.90,187.00
|
||||
154.40,197.12 153.04,207.16 146.95,216.00
|
||||
139.96,226.14 125.84,235.80 113.00,234.90
|
||||
106.61,234.46 102.40,231.43 98.04,226.98
|
||||
95.60,224.50 93.59,222.06 91.90,219.00
|
||||
90.05,215.63 88.65,210.83 88.33,207.00
|
||||
87.69,199.51 93.31,186.68 102.00,186.68
|
||||
107.46,186.68 117.79,194.87 113.83,203.00
|
||||
111.92,206.91 106.97,209.97 108.40,213.87
|
||||
110.44,219.43 120.92,218.20 126.20,210.96
|
||||
133.24,201.29 127.75,186.02 118.00,180.22
|
||||
112.33,176.85 107.32,176.93 101.00,177.00
|
||||
84.41,177.20 76.13,192.99 76.75,208.00
|
||||
77.54,227.41 89.15,244.53 104.00,256.33
|
||||
104.00,256.33 134.00,278.09 134.00,278.09
|
||||
154.59,297.03 162.89,319.45 163.96,347.00
|
||||
164.14,351.55 163.58,352.88 163.17,357.00
|
||||
161.32,375.48 157.28,393.58 148.14,410.00
|
||||
145.19,415.30 141.87,420.46 137.83,425.00
|
||||
134.15,429.13 127.79,434.93 125.70,440.00
|
||||
123.42,445.51 123.97,456.76 124.00,463.00
|
||||
124.04,471.95 126.14,484.29 133.18,490.47
|
||||
143.88,499.87 161.91,496.53 165.84,482.00
|
||||
166.91,478.04 167.16,470.07 161.93,468.74
|
||||
156.40,467.35 154.22,480.07 146.00,477.24
|
||||
135.84,473.75 138.43,461.83 145.04,456.39
|
||||
157.52,446.13 173.38,454.01 181.00,466.00
|
||||
185.88,461.97 188.09,458.16 194.00,454.90 Z
|
||||
M 292.99,382.00
|
||||
C 292.53,400.29 269.43,399.56 262.43,390.90
|
||||
257.45,384.73 261.03,373.76 263.00,367.00
|
||||
256.96,369.40 248.86,372.22 243.10,367.57
|
||||
234.98,361.01 234.17,338.41 244.04,333.17
|
||||
249.55,330.25 257.59,333.20 262.75,335.00
|
||||
260.29,328.62 257.87,317.08 262.75,311.10
|
||||
268.51,303.38 287.21,302.67 291.91,313.04
|
||||
294.72,319.23 292.00,328.89 290.00,335.00
|
||||
295.59,332.29 305.53,329.89 310.79,334.43
|
||||
318.50,341.08 318.35,364.83 307.98,369.15
|
||||
302.69,371.35 296.08,368.69 291.00,367.00
|
||||
292.35,373.69 293.16,374.76 292.99,382.00 Z
|
||||
M 101.30,390.81
|
||||
C 94.85,399.26 71.72,400.42 70.19,383.00
|
||||
69.80,378.59 71.74,370.36 73.00,366.00
|
||||
67.55,369.01 59.92,372.13 54.11,368.26
|
||||
44.46,361.96 45.29,338.54 54.11,333.45
|
||||
59.55,330.38 67.39,332.87 72.86,334.00
|
||||
71.00,327.08 68.11,317.57 72.86,311.10
|
||||
78.43,303.11 96.99,303.62 101.86,312.04
|
||||
106.02,319.23 102.65,327.66 101.00,335.00
|
||||
106.51,332.88 114.50,330.16 119.96,333.74
|
||||
129.44,339.96 128.99,363.23 118.96,368.55
|
||||
112.95,371.73 105.89,368.96 100.00,367.00
|
||||
102.92,373.67 106.23,384.36 101.30,390.81 Z
|
||||
M 271.25,374.00
|
||||
C 270.52,376.47 269.45,380.26 271.25,382.69
|
||||
273.09,385.86 279.15,385.45 281.39,382.69
|
||||
284.99,378.22 278.99,368.57 276.00,365.00
|
||||
276.00,365.00 271.25,374.00 271.25,374.00 Z
|
||||
M 81.60,381.85
|
||||
C 83.53,386.44 91.87,385.74 93.23,380.94
|
||||
94.36,376.97 89.95,369.42 88.00,366.00
|
||||
88.00,366.00 86.00,366.00 86.00,366.00
|
||||
83.87,370.05 79.62,377.14 81.60,381.85 Z
|
||||
M 291.00,367.00
|
||||
C 291.00,367.00 290.00,366.00 290.00,366.00
|
||||
290.00,366.00 290.00,367.00 290.00,367.00
|
||||
290.00,367.00 291.00,367.00 291.00,367.00 Z
|
||||
M 299.98,344.37
|
||||
C 296.54,344.42 289.70,348.70 291.25,352.80
|
||||
292.50,356.12 297.82,357.89 300.96,358.06
|
||||
308.74,354.52 306.34,344.27 299.98,344.37 Z
|
||||
M 69.89,347.23
|
||||
C 68.74,346.17 67.47,345.28 66.00,344.74
|
||||
55.92,341.04 55.84,357.76 63.04,358.18
|
||||
64.71,358.28 66.55,357.41 68.00,356.67
|
||||
68.00,356.67 74.00,353.00 74.00,353.00
|
||||
72.74,350.67 71.91,349.07 69.89,347.23 Z
|
||||
M 261.83,351.90
|
||||
C 263.68,347.14 255.31,343.42 252.04,343.76
|
||||
246.35,344.35 243.98,355.77 253.02,357.27
|
||||
256.11,356.70 260.56,355.17 261.83,351.90 Z
|
||||
M 110.98,343.64
|
||||
C 108.10,343.42 100.20,346.50 101.84,351.90
|
||||
102.99,355.66 107.58,356.94 110.98,357.24
|
||||
119.80,354.57 117.10,344.11 110.98,343.64 Z
|
||||
M 101.00,336.00
|
||||
C 101.00,336.00 100.00,335.00 100.00,335.00
|
||||
100.00,335.00 100.00,336.00 100.00,336.00
|
||||
100.00,336.00 101.00,336.00 101.00,336.00 Z
|
||||
M 281.79,328.00
|
||||
C 282.49,325.53 283.53,321.70 281.79,319.37
|
||||
279.99,316.27 274.01,316.51 271.78,319.37
|
||||
270.81,321.22 271.08,324.01 271.78,326.00
|
||||
271.87,327.52 272.63,329.61 273.41,330.94
|
||||
274.88,333.44 275.59,333.72 278.00,335.00
|
||||
279.50,332.57 280.65,330.72 281.79,328.00 Z
|
||||
M 90.00,330.94
|
||||
C 90.91,329.56 91.66,327.60 92.07,326.00
|
||||
94.69,315.80 84.07,316.01 81.99,318.60
|
||||
80.34,320.73 81.15,325.63 81.99,328.00
|
||||
81.99,328.00 85.00,335.00 85.00,335.00
|
||||
87.47,333.76 88.39,333.39 90.00,330.94 Z
|
||||
M 215.78,148.00
|
||||
C 219.33,154.68 223.04,160.08 231.00,161.00
|
||||
231.00,161.00 225.00,153.00 225.00,153.00
|
||||
225.00,153.00 230.00,153.00 230.00,153.00
|
||||
228.78,150.48 228.33,149.43 225.94,147.70
|
||||
223.11,145.64 213.64,143.45 220.00,139.00
|
||||
220.00,139.00 215.00,126.00 215.00,126.00
|
||||
215.00,126.00 223.00,131.00 223.00,131.00
|
||||
223.00,131.00 224.00,128.00 224.00,128.00
|
||||
224.00,128.00 236.00,145.00 236.00,145.00
|
||||
236.00,145.00 238.00,135.00 238.00,135.00
|
||||
238.00,135.00 240.00,138.00 240.00,138.00
|
||||
237.26,120.56 218.82,112.43 203.00,110.00
|
||||
205.32,122.34 209.89,136.92 215.78,148.00 Z
|
||||
M 147.74,148.00
|
||||
C 152.72,138.31 159.50,120.81 160.00,110.00
|
||||
149.47,111.63 135.10,117.52 128.39,126.00
|
||||
125.06,130.20 122.06,136.71 124.00,142.00
|
||||
124.00,142.00 128.00,135.00 128.00,135.00
|
||||
128.00,135.00 129.00,144.00 129.00,144.00
|
||||
129.00,144.00 137.00,130.00 137.00,130.00
|
||||
137.00,130.00 140.00,132.00 140.00,132.00
|
||||
140.00,132.00 148.00,128.00 148.00,128.00
|
||||
143.94,135.35 143.97,136.30 147.00,144.00
|
||||
140.45,145.54 136.72,147.21 133.00,153.00
|
||||
133.00,153.00 139.00,153.00 139.00,153.00
|
||||
139.00,153.00 132.00,161.00 132.00,161.00
|
||||
140.78,160.06 143.92,155.42 147.74,148.00 Z
|
||||
M 292.22,106.00
|
||||
C 298.63,92.38 301.00,72.97 301.00,58.00
|
||||
294.93,59.14 290.12,62.36 285.00,65.69
|
||||
275.35,71.98 264.05,80.57 257.44,90.00
|
||||
253.82,95.16 249.58,103.69 252.00,110.00
|
||||
252.00,110.00 261.00,96.00 261.00,96.00
|
||||
261.00,96.00 264.00,105.00 264.00,105.00
|
||||
270.71,89.42 268.79,95.72 271.00,79.00
|
||||
272.56,79.99 275.20,81.92 277.00,82.12
|
||||
280.62,82.52 289.06,75.35 292.00,73.00
|
||||
292.00,73.00 285.00,91.00 285.00,91.00
|
||||
285.00,91.00 290.00,90.00 290.00,90.00
|
||||
282.12,103.49 276.53,99.70 270.00,113.00
|
||||
270.00,113.00 284.00,112.00 284.00,112.00
|
||||
284.00,112.00 270.00,124.00 270.00,124.00
|
||||
282.05,122.91 287.34,116.36 292.22,106.00 Z
|
||||
M 73.88,111.00
|
||||
C 77.55,117.31 85.94,125.94 94.00,123.00
|
||||
88.26,120.38 84.01,116.86 80.00,112.00
|
||||
80.00,112.00 93.00,113.00 93.00,113.00
|
||||
88.16,100.65 80.30,103.82 74.00,90.00
|
||||
74.00,90.00 78.00,91.00 78.00,91.00
|
||||
78.00,91.00 71.00,73.00 71.00,73.00
|
||||
71.00,73.00 87.00,84.00 87.00,84.00
|
||||
87.00,84.00 93.00,79.00 93.00,79.00
|
||||
93.08,88.33 94.52,98.87 101.00,106.00
|
||||
101.00,106.00 103.00,97.00 103.00,97.00
|
||||
103.00,97.00 112.00,111.00 112.00,111.00
|
||||
111.98,104.98 111.64,100.61 109.10,95.00
|
||||
102.10,79.57 77.36,63.62 62.00,57.00
|
||||
63.48,75.27 64.39,94.72 73.88,111.00 Z
|
||||
M 302.00,58.00
|
||||
C 302.00,58.00 301.00,57.00 301.00,57.00
|
||||
301.00,57.00 301.00,58.00 301.00,58.00
|
||||
301.00,58.00 302.00,58.00 302.00,58.00 Z
|
||||
M 318.00,0.00
|
||||
C 318.00,0.00 322.00,4.00 322.00,4.00
|
||||
322.00,4.00 318.00,0.00 318.00,0.00 Z" />
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="3.7in" height="6.81111in"
|
||||
viewBox="0 0 333 613">
|
||||
<path id="Selection"
|
||||
fill="white" stroke="white" stroke-width="1"
|
||||
d="M 294.09,612.15
|
||||
C 290.90,610.75 288.13,606.65 285.87,604.00
|
||||
281.33,598.68 277.22,593.89 272.00,589.17
|
||||
272.00,589.17 239.09,564.91 239.09,564.91
|
||||
226.26,552.18 225.97,539.64 226.00,523.00
|
||||
226.01,518.60 225.94,517.36 227.00,513.00
|
||||
215.99,517.02 199.55,515.49 190.00,508.39
|
||||
186.50,505.78 183.84,502.28 181.00,499.00
|
||||
173.09,515.06 152.67,517.79 137.00,513.00
|
||||
137.00,513.00 138.00,526.00 138.00,526.00
|
||||
138.13,537.91 135.91,550.35 128.47,560.00
|
||||
119.44,571.72 103.81,577.35 91.00,590.00
|
||||
91.00,590.00 71.91,610.57 71.91,610.57
|
||||
69.54,612.43 65.19,613.79 62.31,612.40
|
||||
59.83,611.20 60.10,608.34 59.84,606.00
|
||||
59.84,606.00 59.00,588.00 59.00,588.00
|
||||
59.00,588.00 59.91,576.00 59.91,576.00
|
||||
59.91,576.00 61.64,549.00 61.64,549.00
|
||||
62.52,543.26 68.71,522.28 71.26,517.00
|
||||
76.38,506.40 81.13,498.56 92.00,492.98
|
||||
98.11,489.85 105.21,488.55 112.00,488.00
|
||||
112.00,488.00 108.08,471.00 108.08,471.00
|
||||
108.08,471.00 108.08,447.00 108.08,447.00
|
||||
90.38,452.10 69.99,452.34 53.00,444.69
|
||||
39.47,438.59 36.16,434.08 25.00,427.00
|
||||
25.00,427.00 25.00,613.00 25.00,613.00
|
||||
25.00,613.00 1.00,613.00 1.00,613.00
|
||||
1.00,613.00 2.00,596.00 2.00,596.00
|
||||
2.00,596.00 2.00,0.00 2.00,0.00
|
||||
2.00,0.00 25.00,0.00 25.00,0.00
|
||||
25.00,0.00 25.00,372.00 25.00,372.00
|
||||
25.01,381.25 26.45,391.77 30.90,400.00
|
||||
44.39,424.93 75.21,431.48 100.00,420.56
|
||||
122.79,410.52 138.81,384.81 143.60,361.00
|
||||
144.40,357.03 145.96,346.75 145.68,343.00
|
||||
144.48,327.02 139.78,311.61 129.53,299.00
|
||||
109.20,273.98 86.74,275.69 68.44,254.00
|
||||
62.62,247.10 57.33,238.62 54.52,230.00
|
||||
47.81,209.44 52.96,179.39 71.00,165.92
|
||||
84.24,156.04 95.39,156.00 111.00,156.00
|
||||
111.00,156.00 111.00,141.00 111.00,141.00
|
||||
105.55,142.44 101.69,143.20 96.00,142.96
|
||||
61.97,141.52 52.80,104.70 49.84,77.00
|
||||
49.84,77.00 48.00,59.00 48.00,59.00
|
||||
48.00,59.00 48.00,29.00 48.00,29.00
|
||||
48.00,20.40 46.96,15.94 51.00,8.00
|
||||
51.00,8.00 53.00,8.00 53.00,8.00
|
||||
59.37,22.27 75.47,40.03 88.00,49.25
|
||||
99.27,57.53 111.24,62.49 118.74,75.00
|
||||
126.36,87.69 125.00,96.06 125.00,110.00
|
||||
135.80,102.28 152.64,96.16 166.00,96.00
|
||||
166.00,96.00 180.00,96.00 180.00,96.00
|
||||
204.87,96.00 216.19,95.47 238.00,110.00
|
||||
238.00,100.43 237.34,91.13 240.93,82.00
|
||||
248.57,62.56 269.92,55.72 284.00,41.99
|
||||
289.19,36.92 294.53,31.85 298.84,26.00
|
||||
303.62,19.52 307.59,12.01 314.00,7.00
|
||||
315.17,15.90 316.01,25.02 316.00,34.00
|
||||
316.00,34.00 315.00,51.00 315.00,51.00
|
||||
314.97,72.67 313.94,91.50 305.80,112.00
|
||||
296.54,135.30 277.99,148.22 253.00,141.00
|
||||
253.00,141.00 253.00,156.00 253.00,156.00
|
||||
267.17,156.00 278.82,156.06 291.00,164.79
|
||||
299.93,171.18 305.36,179.70 308.66,190.00
|
||||
315.67,211.88 311.45,234.27 296.68,252.00
|
||||
275.44,277.48 251.60,274.31 232.43,301.00
|
||||
221.67,315.98 217.79,330.76 218.00,349.00
|
||||
218.10,357.05 220.43,364.46 223.00,372.00
|
||||
234.47,405.68 263.56,432.38 301.00,424.33
|
||||
316.60,420.98 321.12,411.50 333.00,403.00
|
||||
333.00,403.00 333.00,423.00 333.00,423.00
|
||||
333.00,425.07 333.11,428.08 332.40,430.00
|
||||
330.39,435.40 321.05,440.29 316.00,442.74
|
||||
304.84,448.17 286.38,452.02 274.00,450.83
|
||||
274.00,450.83 256.00,448.00 256.00,448.00
|
||||
256.00,462.39 256.98,474.34 251.00,488.00
|
||||
256.43,488.12 265.07,489.16 270.00,491.35
|
||||
280.10,495.83 286.50,504.37 291.24,514.00
|
||||
299.44,530.62 301.81,549.75 303.09,568.00
|
||||
303.09,568.00 304.00,580.00 304.00,580.00
|
||||
304.00,580.00 304.00,598.00 304.00,598.00
|
||||
304.00,598.00 303.00,613.00 303.00,613.00
|
||||
300.31,613.00 296.54,613.22 294.09,612.15 Z
|
||||
M 333.00,592.00
|
||||
C 333.00,592.00 332.00,597.00 332.00,597.00
|
||||
332.00,597.00 333.00,592.00 333.00,592.00 Z
|
||||
M 288.08,559.00
|
||||
C 286.75,547.22 283.27,527.61 276.37,518.00
|
||||
272.45,512.56 264.16,505.39 257.00,508.00
|
||||
262.74,510.62 266.99,514.14 271.00,519.00
|
||||
271.00,519.00 258.00,518.00 258.00,518.00
|
||||
263.71,529.62 270.84,529.61 279.00,541.00
|
||||
279.00,541.00 273.00,540.00 273.00,540.00
|
||||
273.00,540.00 280.00,558.00 280.00,558.00
|
||||
280.00,558.00 264.00,547.00 264.00,547.00
|
||||
264.00,547.00 260.00,552.00 260.00,552.00
|
||||
257.04,542.90 257.18,531.74 250.00,525.00
|
||||
250.00,525.00 249.00,536.00 249.00,536.00
|
||||
249.00,536.00 240.00,520.00 240.00,520.00
|
||||
238.23,528.95 242.36,538.06 247.82,545.00
|
||||
257.43,557.20 274.63,566.39 288.08,574.00
|
||||
289.90,569.22 288.75,563.96 288.08,559.00 Z
|
||||
M 116.98,543.00
|
||||
C 122.10,536.45 126.30,527.31 123.00,519.00
|
||||
120.47,526.22 119.19,528.29 114.00,534.00
|
||||
114.00,534.00 112.00,525.00 112.00,525.00
|
||||
107.20,536.14 105.67,539.64 104.00,552.00
|
||||
102.69,551.05 100.39,549.08 98.83,548.88
|
||||
95.47,548.46 86.78,555.78 84.00,558.00
|
||||
84.00,558.00 91.00,540.00 91.00,540.00
|
||||
91.00,540.00 85.00,541.00 85.00,541.00
|
||||
92.80,528.74 101.35,528.69 105.00,518.00
|
||||
105.00,518.00 92.00,519.00 92.00,519.00
|
||||
92.00,519.00 106.00,507.00 106.00,507.00
|
||||
100.66,507.48 96.22,508.79 92.04,512.34
|
||||
80.91,521.79 75.94,547.81 74.98,562.00
|
||||
74.98,562.00 74.00,574.00 74.00,574.00
|
||||
88.03,569.10 107.92,554.62 116.98,543.00 Z
|
||||
M 194.00,454.90
|
||||
C 204.76,448.97 218.79,451.94 223.77,464.00
|
||||
227.27,472.47 219.42,478.70 214.01,477.53
|
||||
208.04,476.23 206.44,467.45 201.21,468.88
|
||||
196.42,470.19 196.78,478.32 197.76,482.00
|
||||
202.06,498.04 222.75,500.19 232.61,487.98
|
||||
240.76,477.89 239.15,460.40 239.00,448.00
|
||||
238.85,435.84 233.63,434.36 226.17,426.00
|
||||
221.77,421.07 217.86,414.85 214.78,409.00
|
||||
200.79,382.43 195.67,348.13 203.74,319.00
|
||||
207.94,303.87 216.27,289.70 228.00,279.17
|
||||
231.78,275.78 235.87,273.17 240.00,270.28
|
||||
258.24,257.51 273.96,247.71 282.98,226.00
|
||||
288.34,213.10 289.13,200.18 281.53,188.00
|
||||
276.74,180.30 270.93,177.11 262.00,177.00
|
||||
255.63,176.93 250.67,177.06 245.00,180.48
|
||||
235.90,185.97 230.33,200.53 236.70,210.00
|
||||
242.80,219.06 253.70,218.18 255.16,213.77
|
||||
257.12,207.83 246.52,204.39 249.05,197.00
|
||||
252.15,187.96 262.54,183.05 269.47,191.11
|
||||
280.95,204.44 272.55,225.73 258.00,233.00
|
||||
251.19,236.41 242.74,235.02 236.00,232.12
|
||||
221.07,225.71 210.63,212.55 211.01,196.00
|
||||
211.23,186.56 216.00,180.59 219.00,172.00
|
||||
198.88,156.95 200.81,147.02 193.30,126.00
|
||||
193.30,126.00 183.00,102.00 183.00,102.00
|
||||
178.42,104.94 176.30,112.12 174.14,117.00
|
||||
174.14,117.00 159.12,157.00 159.12,157.00
|
||||
156.70,161.17 154.50,163.56 151.00,166.83
|
||||
148.82,168.87 145.91,170.72 145.84,174.01
|
||||
145.78,176.89 149.76,183.69 150.90,187.00
|
||||
154.40,197.12 153.04,207.16 146.95,216.00
|
||||
139.96,226.14 125.84,235.80 113.00,234.90
|
||||
106.61,234.46 102.40,231.43 98.04,226.98
|
||||
95.60,224.50 93.59,222.06 91.90,219.00
|
||||
90.05,215.63 88.65,210.83 88.33,207.00
|
||||
87.69,199.51 93.31,186.68 102.00,186.68
|
||||
107.46,186.68 117.79,194.87 113.83,203.00
|
||||
111.92,206.91 106.97,209.97 108.40,213.87
|
||||
110.44,219.43 120.92,218.20 126.20,210.96
|
||||
133.24,201.29 127.75,186.02 118.00,180.22
|
||||
112.33,176.85 107.32,176.93 101.00,177.00
|
||||
84.41,177.20 76.13,192.99 76.75,208.00
|
||||
77.54,227.41 89.15,244.53 104.00,256.33
|
||||
104.00,256.33 134.00,278.09 134.00,278.09
|
||||
154.59,297.03 162.89,319.45 163.96,347.00
|
||||
164.14,351.55 163.58,352.88 163.17,357.00
|
||||
161.32,375.48 157.28,393.58 148.14,410.00
|
||||
145.19,415.30 141.87,420.46 137.83,425.00
|
||||
134.15,429.13 127.79,434.93 125.70,440.00
|
||||
123.42,445.51 123.97,456.76 124.00,463.00
|
||||
124.04,471.95 126.14,484.29 133.18,490.47
|
||||
143.88,499.87 161.91,496.53 165.84,482.00
|
||||
166.91,478.04 167.16,470.07 161.93,468.74
|
||||
156.40,467.35 154.22,480.07 146.00,477.24
|
||||
135.84,473.75 138.43,461.83 145.04,456.39
|
||||
157.52,446.13 173.38,454.01 181.00,466.00
|
||||
185.88,461.97 188.09,458.16 194.00,454.90 Z
|
||||
M 292.99,382.00
|
||||
C 292.53,400.29 269.43,399.56 262.43,390.90
|
||||
257.45,384.73 261.03,373.76 263.00,367.00
|
||||
256.96,369.40 248.86,372.22 243.10,367.57
|
||||
234.98,361.01 234.17,338.41 244.04,333.17
|
||||
249.55,330.25 257.59,333.20 262.75,335.00
|
||||
260.29,328.62 257.87,317.08 262.75,311.10
|
||||
268.51,303.38 287.21,302.67 291.91,313.04
|
||||
294.72,319.23 292.00,328.89 290.00,335.00
|
||||
295.59,332.29 305.53,329.89 310.79,334.43
|
||||
318.50,341.08 318.35,364.83 307.98,369.15
|
||||
302.69,371.35 296.08,368.69 291.00,367.00
|
||||
292.35,373.69 293.16,374.76 292.99,382.00 Z
|
||||
M 101.30,390.81
|
||||
C 94.85,399.26 71.72,400.42 70.19,383.00
|
||||
69.80,378.59 71.74,370.36 73.00,366.00
|
||||
67.55,369.01 59.92,372.13 54.11,368.26
|
||||
44.46,361.96 45.29,338.54 54.11,333.45
|
||||
59.55,330.38 67.39,332.87 72.86,334.00
|
||||
71.00,327.08 68.11,317.57 72.86,311.10
|
||||
78.43,303.11 96.99,303.62 101.86,312.04
|
||||
106.02,319.23 102.65,327.66 101.00,335.00
|
||||
106.51,332.88 114.50,330.16 119.96,333.74
|
||||
129.44,339.96 128.99,363.23 118.96,368.55
|
||||
112.95,371.73 105.89,368.96 100.00,367.00
|
||||
102.92,373.67 106.23,384.36 101.30,390.81 Z
|
||||
M 271.25,374.00
|
||||
C 270.52,376.47 269.45,380.26 271.25,382.69
|
||||
273.09,385.86 279.15,385.45 281.39,382.69
|
||||
284.99,378.22 278.99,368.57 276.00,365.00
|
||||
276.00,365.00 271.25,374.00 271.25,374.00 Z
|
||||
M 81.60,381.85
|
||||
C 83.53,386.44 91.87,385.74 93.23,380.94
|
||||
94.36,376.97 89.95,369.42 88.00,366.00
|
||||
88.00,366.00 86.00,366.00 86.00,366.00
|
||||
83.87,370.05 79.62,377.14 81.60,381.85 Z
|
||||
M 291.00,367.00
|
||||
C 291.00,367.00 290.00,366.00 290.00,366.00
|
||||
290.00,366.00 290.00,367.00 290.00,367.00
|
||||
290.00,367.00 291.00,367.00 291.00,367.00 Z
|
||||
M 299.98,344.37
|
||||
C 296.54,344.42 289.70,348.70 291.25,352.80
|
||||
292.50,356.12 297.82,357.89 300.96,358.06
|
||||
308.74,354.52 306.34,344.27 299.98,344.37 Z
|
||||
M 69.89,347.23
|
||||
C 68.74,346.17 67.47,345.28 66.00,344.74
|
||||
55.92,341.04 55.84,357.76 63.04,358.18
|
||||
64.71,358.28 66.55,357.41 68.00,356.67
|
||||
68.00,356.67 74.00,353.00 74.00,353.00
|
||||
72.74,350.67 71.91,349.07 69.89,347.23 Z
|
||||
M 261.83,351.90
|
||||
C 263.68,347.14 255.31,343.42 252.04,343.76
|
||||
246.35,344.35 243.98,355.77 253.02,357.27
|
||||
256.11,356.70 260.56,355.17 261.83,351.90 Z
|
||||
M 110.98,343.64
|
||||
C 108.10,343.42 100.20,346.50 101.84,351.90
|
||||
102.99,355.66 107.58,356.94 110.98,357.24
|
||||
119.80,354.57 117.10,344.11 110.98,343.64 Z
|
||||
M 101.00,336.00
|
||||
C 101.00,336.00 100.00,335.00 100.00,335.00
|
||||
100.00,335.00 100.00,336.00 100.00,336.00
|
||||
100.00,336.00 101.00,336.00 101.00,336.00 Z
|
||||
M 281.79,328.00
|
||||
C 282.49,325.53 283.53,321.70 281.79,319.37
|
||||
279.99,316.27 274.01,316.51 271.78,319.37
|
||||
270.81,321.22 271.08,324.01 271.78,326.00
|
||||
271.87,327.52 272.63,329.61 273.41,330.94
|
||||
274.88,333.44 275.59,333.72 278.00,335.00
|
||||
279.50,332.57 280.65,330.72 281.79,328.00 Z
|
||||
M 90.00,330.94
|
||||
C 90.91,329.56 91.66,327.60 92.07,326.00
|
||||
94.69,315.80 84.07,316.01 81.99,318.60
|
||||
80.34,320.73 81.15,325.63 81.99,328.00
|
||||
81.99,328.00 85.00,335.00 85.00,335.00
|
||||
87.47,333.76 88.39,333.39 90.00,330.94 Z
|
||||
M 215.78,148.00
|
||||
C 219.33,154.68 223.04,160.08 231.00,161.00
|
||||
231.00,161.00 225.00,153.00 225.00,153.00
|
||||
225.00,153.00 230.00,153.00 230.00,153.00
|
||||
228.78,150.48 228.33,149.43 225.94,147.70
|
||||
223.11,145.64 213.64,143.45 220.00,139.00
|
||||
220.00,139.00 215.00,126.00 215.00,126.00
|
||||
215.00,126.00 223.00,131.00 223.00,131.00
|
||||
223.00,131.00 224.00,128.00 224.00,128.00
|
||||
224.00,128.00 236.00,145.00 236.00,145.00
|
||||
236.00,145.00 238.00,135.00 238.00,135.00
|
||||
238.00,135.00 240.00,138.00 240.00,138.00
|
||||
237.26,120.56 218.82,112.43 203.00,110.00
|
||||
205.32,122.34 209.89,136.92 215.78,148.00 Z
|
||||
M 147.74,148.00
|
||||
C 152.72,138.31 159.50,120.81 160.00,110.00
|
||||
149.47,111.63 135.10,117.52 128.39,126.00
|
||||
125.06,130.20 122.06,136.71 124.00,142.00
|
||||
124.00,142.00 128.00,135.00 128.00,135.00
|
||||
128.00,135.00 129.00,144.00 129.00,144.00
|
||||
129.00,144.00 137.00,130.00 137.00,130.00
|
||||
137.00,130.00 140.00,132.00 140.00,132.00
|
||||
140.00,132.00 148.00,128.00 148.00,128.00
|
||||
143.94,135.35 143.97,136.30 147.00,144.00
|
||||
140.45,145.54 136.72,147.21 133.00,153.00
|
||||
133.00,153.00 139.00,153.00 139.00,153.00
|
||||
139.00,153.00 132.00,161.00 132.00,161.00
|
||||
140.78,160.06 143.92,155.42 147.74,148.00 Z
|
||||
M 292.22,106.00
|
||||
C 298.63,92.38 301.00,72.97 301.00,58.00
|
||||
294.93,59.14 290.12,62.36 285.00,65.69
|
||||
275.35,71.98 264.05,80.57 257.44,90.00
|
||||
253.82,95.16 249.58,103.69 252.00,110.00
|
||||
252.00,110.00 261.00,96.00 261.00,96.00
|
||||
261.00,96.00 264.00,105.00 264.00,105.00
|
||||
270.71,89.42 268.79,95.72 271.00,79.00
|
||||
272.56,79.99 275.20,81.92 277.00,82.12
|
||||
280.62,82.52 289.06,75.35 292.00,73.00
|
||||
292.00,73.00 285.00,91.00 285.00,91.00
|
||||
285.00,91.00 290.00,90.00 290.00,90.00
|
||||
282.12,103.49 276.53,99.70 270.00,113.00
|
||||
270.00,113.00 284.00,112.00 284.00,112.00
|
||||
284.00,112.00 270.00,124.00 270.00,124.00
|
||||
282.05,122.91 287.34,116.36 292.22,106.00 Z
|
||||
M 73.88,111.00
|
||||
C 77.55,117.31 85.94,125.94 94.00,123.00
|
||||
88.26,120.38 84.01,116.86 80.00,112.00
|
||||
80.00,112.00 93.00,113.00 93.00,113.00
|
||||
88.16,100.65 80.30,103.82 74.00,90.00
|
||||
74.00,90.00 78.00,91.00 78.00,91.00
|
||||
78.00,91.00 71.00,73.00 71.00,73.00
|
||||
71.00,73.00 87.00,84.00 87.00,84.00
|
||||
87.00,84.00 93.00,79.00 93.00,79.00
|
||||
93.08,88.33 94.52,98.87 101.00,106.00
|
||||
101.00,106.00 103.00,97.00 103.00,97.00
|
||||
103.00,97.00 112.00,111.00 112.00,111.00
|
||||
111.98,104.98 111.64,100.61 109.10,95.00
|
||||
102.10,79.57 77.36,63.62 62.00,57.00
|
||||
63.48,75.27 64.39,94.72 73.88,111.00 Z
|
||||
M 302.00,58.00
|
||||
C 302.00,58.00 301.00,57.00 301.00,57.00
|
||||
301.00,57.00 301.00,58.00 301.00,58.00
|
||||
301.00,58.00 302.00,58.00 302.00,58.00 Z
|
||||
M 318.00,0.00
|
||||
C 318.00,0.00 322.00,4.00 322.00,4.00
|
||||
322.00,4.00 318.00,0.00 318.00,0.00 Z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
@@ -1,469 +1,469 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="10.4167in" height="3.19444in"
|
||||
viewBox="0 0 750 230">
|
||||
<path id="Selection"
|
||||
fill="#5d7f7f" stroke="#5d7f7f" stroke-width="1"
|
||||
d="M 339.00,15.00
|
||||
C 341.79,17.18 342.77,17.60 346.00,16.00
|
||||
347.87,22.73 349.90,21.55 348.00,28.00
|
||||
348.00,28.00 352.00,29.00 352.00,29.00
|
||||
352.00,29.00 349.00,34.00 349.00,34.00
|
||||
349.00,34.00 356.00,35.00 356.00,35.00
|
||||
356.00,35.00 354.24,41.91 354.24,41.91
|
||||
354.24,41.91 363.99,52.00 363.99,52.00
|
||||
363.99,52.00 379.00,71.00 379.00,71.00
|
||||
380.79,66.53 382.45,59.93 388.04,59.16
|
||||
388.04,59.16 401.00,60.00 401.00,60.00
|
||||
398.57,71.42 390.88,69.72 382.00,69.00
|
||||
382.00,87.95 380.85,108.05 374.31,126.00
|
||||
368.70,141.38 360.64,143.46 360.00,155.00
|
||||
348.69,153.63 349.33,161.46 341.00,166.00
|
||||
340.65,167.81 340.92,168.14 339.59,169.79
|
||||
336.16,174.07 322.61,178.03 316.00,182.79
|
||||
308.99,187.83 307.02,190.09 312.00,197.00
|
||||
309.75,199.38 308.03,201.09 306.41,204.00
|
||||
302.20,211.57 300.12,230.49 287.00,222.00
|
||||
298.75,221.31 301.91,211.18 302.00,201.00
|
||||
302.00,201.00 296.00,202.00 296.00,202.00
|
||||
296.29,192.93 299.29,197.07 303.15,191.78
|
||||
305.17,189.01 304.70,185.87 308.36,181.52
|
||||
314.50,174.22 321.87,174.47 325.00,162.00
|
||||
320.35,161.58 318.46,161.29 315.00,158.00
|
||||
315.00,158.00 325.00,155.00 325.00,155.00
|
||||
318.56,142.44 321.41,139.86 322.00,127.00
|
||||
328.35,129.84 333.26,129.57 333.00,121.00
|
||||
333.00,121.00 342.00,127.00 342.00,127.00
|
||||
342.00,127.00 342.00,119.00 342.00,119.00
|
||||
342.00,119.00 348.04,125.69 348.04,125.69
|
||||
348.04,125.69 357.00,129.00 357.00,129.00
|
||||
357.00,129.00 343.00,127.00 343.00,127.00
|
||||
343.00,127.00 351.00,138.00 351.00,138.00
|
||||
356.46,134.50 357.61,133.58 358.00,127.00
|
||||
359.39,126.92 360.12,127.25 361.44,126.22
|
||||
363.97,124.28 366.66,115.22 367.00,112.00
|
||||
362.87,113.55 360.30,114.69 356.00,113.00
|
||||
363.82,112.61 367.86,110.18 369.00,102.00
|
||||
369.00,102.00 346.00,108.00 346.00,108.00
|
||||
346.00,108.00 349.00,112.00 349.00,112.00
|
||||
349.00,112.00 343.00,113.00 343.00,113.00
|
||||
339.25,107.39 334.11,111.43 329.09,110.12
|
||||
325.61,109.21 326.04,106.81 320.00,105.00
|
||||
322.34,111.23 322.87,113.81 320.00,120.00
|
||||
320.00,120.00 318.00,120.00 318.00,120.00
|
||||
314.84,112.04 313.63,108.46 316.00,100.00
|
||||
316.00,100.00 311.00,101.00 311.00,101.00
|
||||
311.00,101.00 310.00,100.00 310.00,100.00
|
||||
310.00,100.00 314.00,73.00 314.00,73.00
|
||||
314.00,73.00 303.00,77.00 303.00,77.00
|
||||
305.49,70.28 307.00,68.50 314.00,67.00
|
||||
313.29,61.22 316.97,59.18 322.00,57.39
|
||||
334.40,52.95 337.46,62.26 351.00,68.00
|
||||
351.00,68.00 352.00,65.00 352.00,65.00
|
||||
352.00,65.00 357.00,68.00 357.00,68.00
|
||||
354.85,70.70 352.63,73.27 353.13,77.00
|
||||
353.81,82.08 358.45,85.33 362.85,81.57
|
||||
366.87,78.13 364.84,75.04 363.37,71.00
|
||||
360.59,63.41 359.25,56.08 350.00,55.00
|
||||
350.00,55.00 352.00,50.00 352.00,50.00
|
||||
348.20,48.37 340.93,44.53 337.00,44.71
|
||||
331.80,44.95 319.97,52.49 315.47,49.97
|
||||
313.88,49.08 312.99,47.44 312.00,46.00
|
||||
312.00,46.00 337.00,15.00 337.00,15.00
|
||||
337.00,15.00 339.00,15.00 339.00,15.00 Z
|
||||
M 326.00,42.00
|
||||
C 329.84,47.82 335.87,44.84 337.00,38.00
|
||||
337.00,38.00 326.00,42.00 326.00,42.00 Z
|
||||
M 339.96,64.53
|
||||
C 336.57,61.78 326.66,56.55 322.39,59.06
|
||||
319.15,60.97 317.26,69.41 316.62,73.00
|
||||
314.50,84.73 317.94,100.12 330.01,105.07
|
||||
334.22,106.80 336.64,107.14 341.00,106.00
|
||||
341.00,106.00 340.00,100.83 340.00,100.83
|
||||
341.81,100.98 344.24,101.02 346.00,100.83
|
||||
350.97,99.62 352.65,95.69 353.30,91.00
|
||||
353.89,86.81 351.95,86.09 352.00,80.00
|
||||
347.17,75.18 345.67,69.15 339.96,64.53 Z
|
||||
M 153.26,62.15
|
||||
C 154.46,66.89 147.21,68.99 146.08,76.96
|
||||
144.16,90.43 143.83,125.44 144.00,140.00
|
||||
144.04,142.95 145.00,154.80 146.17,156.94
|
||||
150.67,165.11 161.83,154.88 165.92,161.49
|
||||
168.64,165.90 161.56,166.85 159.00,167.00
|
||||
159.00,167.00 161.00,163.00 161.00,163.00
|
||||
145.14,159.19 137.22,176.94 121.00,178.00
|
||||
123.71,173.94 126.62,170.56 128.54,166.00
|
||||
133.37,154.53 132.00,142.19 132.00,130.00
|
||||
124.20,133.72 122.55,141.22 116.00,142.07
|
||||
109.07,142.96 104.96,134.58 103.68,129.00
|
||||
100.38,114.64 106.84,98.91 107.00,85.00
|
||||
107.04,81.13 107.30,76.42 105.15,73.02
|
||||
102.05,68.20 98.69,67.92 96.00,73.02
|
||||
102.58,75.31 97.35,79.09 94.60,76.38
|
||||
91.44,73.28 94.43,65.53 102.28,66.53
|
||||
109.56,67.45 113.49,73.40 115.10,80.00
|
||||
117.99,91.81 115.95,101.46 116.00,113.00
|
||||
116.02,117.71 118.72,134.46 126.71,128.51
|
||||
130.98,125.34 131.97,120.91 132.77,116.00
|
||||
132.77,116.00 132.77,86.00 132.77,86.00
|
||||
132.96,82.94 132.73,78.82 131.49,76.00
|
||||
128.70,69.64 124.04,70.45 121.00,66.00
|
||||
131.56,70.06 141.58,71.62 151.00,64.00
|
||||
151.00,64.00 147.00,63.00 147.00,63.00
|
||||
149.00,57.50 152.71,60.00 153.26,62.15 Z
|
||||
M 405.23,64.60
|
||||
C 403.72,61.97 405.77,59.26 409.29,59.63
|
||||
413.93,60.13 415.44,63.38 422.00,63.00
|
||||
418.23,72.88 406.90,67.51 405.23,64.60 Z
|
||||
M 526.00,61.00
|
||||
C 526.00,61.00 527.00,65.00 527.00,65.00
|
||||
527.00,65.00 522.00,66.00 522.00,66.00
|
||||
523.71,67.84 524.75,69.21 527.09,70.35
|
||||
530.96,72.22 547.44,72.19 552.00,71.39
|
||||
556.89,70.52 562.16,68.14 567.00,70.00
|
||||
555.55,76.71 558.99,80.27 557.72,91.00
|
||||
557.72,91.00 557.00,118.00 557.00,118.00
|
||||
556.97,121.93 557.56,131.57 558.89,134.99
|
||||
560.06,137.98 562.94,140.46 565.00,143.00
|
||||
554.28,141.59 548.63,139.55 538.00,143.00
|
||||
538.00,143.00 539.00,148.00 539.00,148.00
|
||||
539.00,148.00 533.00,148.00 533.00,148.00
|
||||
533.74,138.98 538.48,141.72 541.98,135.00
|
||||
544.22,130.70 545.10,112.93 544.00,108.00
|
||||
540.84,108.78 535.85,108.95 533.74,111.43
|
||||
531.62,113.92 532.04,119.55 531.33,123.00
|
||||
529.66,131.19 526.81,140.78 519.83,146.01
|
||||
515.24,149.45 508.26,149.08 508.37,142.00
|
||||
508.44,137.44 513.28,132.10 517.08,130.00
|
||||
515.79,133.42 513.15,137.68 517.08,140.60
|
||||
518.30,141.19 519.45,141.39 520.73,140.60
|
||||
522.90,139.80 524.14,136.15 524.66,134.00
|
||||
525.67,129.74 525.21,115.84 522.98,112.22
|
||||
521.49,109.79 517.53,108.32 515.00,107.00
|
||||
516.12,103.42 516.40,103.13 520.00,102.00
|
||||
520.00,102.00 520.00,107.00 520.00,107.00
|
||||
520.00,107.00 523.00,107.00 523.00,107.00
|
||||
523.00,92.30 523.02,87.28 532.00,75.00
|
||||
524.74,71.92 519.92,71.01 521.00,62.00
|
||||
521.00,62.00 526.00,61.00 526.00,61.00 Z
|
||||
M 684.00,61.00
|
||||
C 682.93,63.87 683.04,63.80 680.00,64.00
|
||||
682.69,72.87 690.66,70.92 698.00,71.10
|
||||
705.86,71.28 706.13,71.21 714.00,69.74
|
||||
717.76,69.04 720.23,67.75 724.00,69.00
|
||||
720.76,71.33 717.72,73.19 716.15,77.04
|
||||
714.39,81.33 715.28,87.28 714.83,92.00
|
||||
713.98,100.90 712.91,126.28 715.89,134.00
|
||||
717.24,137.49 720.61,140.09 723.00,143.00
|
||||
712.34,140.38 705.69,139.99 694.95,142.00
|
||||
695.24,143.41 695.80,145.05 694.95,146.38
|
||||
693.66,148.18 690.62,147.44 690.63,144.87
|
||||
690.64,140.51 697.17,139.04 699.27,133.96
|
||||
700.49,131.00 701.96,112.01 702.00,108.00
|
||||
698.10,108.04 693.41,107.85 690.74,111.28
|
||||
688.58,114.04 689.15,118.57 688.54,122.00
|
||||
687.02,130.58 683.49,141.36 675.71,146.20
|
||||
669.89,149.82 665.04,145.88 665.52,141.00
|
||||
665.99,136.31 670.07,132.03 674.00,130.00
|
||||
673.16,132.11 671.91,134.63 672.39,136.96
|
||||
673.84,143.99 679.79,139.66 681.53,135.42
|
||||
683.36,130.98 682.66,115.16 680.02,111.27
|
||||
678.05,108.38 674.33,108.29 673.25,105.77
|
||||
672.21,103.35 674.38,102.12 676.00,101.00
|
||||
676.00,101.00 679.00,107.00 679.00,107.00
|
||||
679.00,107.00 681.76,88.00 681.76,88.00
|
||||
681.76,88.00 689.00,74.00 689.00,74.00
|
||||
680.77,71.12 678.91,70.67 678.00,62.00
|
||||
678.00,62.00 684.00,61.00 684.00,61.00 Z
|
||||
M 152.00,63.00
|
||||
C 152.00,63.00 153.00,64.00 153.00,64.00
|
||||
153.00,64.00 153.00,63.00 153.00,63.00
|
||||
153.00,63.00 152.00,63.00 152.00,63.00 Z
|
||||
M 164.00,67.52
|
||||
C 170.74,66.16 175.50,72.22 176.96,78.00
|
||||
179.80,89.26 175.86,102.25 176.00,114.00
|
||||
176.08,120.36 178.93,129.99 185.04,133.13
|
||||
188.86,135.10 193.80,131.44 195.26,127.91
|
||||
196.07,125.96 195.99,123.10 196.00,121.00
|
||||
196.06,109.13 195.53,89.30 192.56,78.00
|
||||
191.79,75.09 191.18,73.65 188.86,71.63
|
||||
187.15,70.14 182.70,68.32 184.17,65.35
|
||||
184.69,64.29 185.95,63.52 187.06,63.23
|
||||
189.12,62.68 190.17,63.35 192.00,64.00
|
||||
192.00,64.00 192.00,66.00 192.00,66.00
|
||||
192.00,66.00 189.00,69.00 189.00,69.00
|
||||
189.00,69.00 212.00,66.00 212.00,66.00
|
||||
212.00,66.00 207.62,78.00 207.62,78.00
|
||||
206.04,85.04 207.13,107.10 207.62,115.00
|
||||
208.12,119.27 207.92,129.27 209.58,132.85
|
||||
212.81,139.81 221.31,131.38 223.00,141.00
|
||||
223.00,141.00 214.00,139.51 214.00,139.51
|
||||
214.00,139.51 196.00,148.00 196.00,148.00
|
||||
196.00,148.00 195.00,135.00 195.00,135.00
|
||||
191.36,137.60 187.83,141.60 184.04,143.52
|
||||
173.88,148.66 166.56,141.72 163.93,132.00
|
||||
159.96,117.37 168.61,103.07 170.70,89.00
|
||||
171.41,84.21 172.82,66.07 163.00,70.08
|
||||
161.45,70.71 160.26,71.95 159.00,73.00
|
||||
162.71,74.64 163.55,74.80 163.00,79.00
|
||||
152.97,76.53 159.29,68.47 164.00,67.52 Z
|
||||
M 223.76,71.14
|
||||
C 227.35,65.41 235.38,66.50 239.15,71.14
|
||||
242.19,75.03 242.94,81.28 243.00,86.00
|
||||
243.00,86.00 241.01,113.00 241.01,113.00
|
||||
241.17,119.69 243.41,128.13 249.17,132.19
|
||||
253.82,135.46 259.20,131.76 260.79,126.96
|
||||
261.08,125.18 261.00,121.92 260.79,120.00
|
||||
261.02,109.33 260.45,87.85 257.75,78.00
|
||||
255.33,69.19 247.34,69.92 249.40,65.24
|
||||
250.87,61.91 254.51,63.08 257.00,64.00
|
||||
257.00,64.00 255.00,69.00 255.00,69.00
|
||||
255.00,69.00 279.00,67.00 279.00,67.00
|
||||
276.13,69.51 274.68,71.32 273.41,75.00
|
||||
270.60,83.16 272.24,106.29 272.72,115.74
|
||||
272.89,119.09 273.47,130.35 274.59,132.85
|
||||
277.01,138.23 283.27,134.17 286.58,136.81
|
||||
289.20,138.90 286.40,143.11 283.00,138.00
|
||||
283.00,138.00 262.00,148.00 262.00,148.00
|
||||
262.00,148.00 260.00,134.00 260.00,134.00
|
||||
256.53,137.46 251.69,142.72 247.00,144.30
|
||||
235.88,148.04 229.22,137.64 228.17,128.00
|
||||
226.78,115.19 232.81,103.25 235.33,91.00
|
||||
237.26,81.64 235.38,77.29 236.00,71.00
|
||||
230.14,69.04 228.30,67.37 225.00,74.00
|
||||
225.00,74.00 229.00,74.00 229.00,74.00
|
||||
227.44,82.93 220.20,76.64 223.76,71.14 Z
|
||||
M 32.42,113.41
|
||||
C 34.32,111.20 38.21,110.66 40.31,107.78
|
||||
43.26,104.01 41.55,87.64 40.31,83.00
|
||||
37.48,73.50 30.99,71.16 33.37,66.15
|
||||
37.05,58.39 54.22,66.85 42.00,69.00
|
||||
42.00,69.00 41.00,64.00 41.00,64.00
|
||||
32.02,67.78 37.44,72.13 42.00,72.47
|
||||
52.48,72.86 66.47,64.71 79.99,72.47
|
||||
93.61,80.56 88.19,98.06 73.00,102.00
|
||||
73.00,102.00 73.00,104.00 73.00,104.00
|
||||
75.57,104.52 79.64,105.33 81.89,106.57
|
||||
91.24,111.68 84.47,122.67 80.92,129.00
|
||||
78.34,133.29 73.57,141.94 80.92,144.36
|
||||
89.23,147.02 87.24,137.27 87.26,137.15
|
||||
87.50,135.39 88.91,134.19 90.60,134.74
|
||||
94.36,135.88 92.14,141.85 90.60,143.81
|
||||
86.51,148.43 78.32,147.90 74.19,143.81
|
||||
64.32,134.19 72.86,122.64 70.77,115.00
|
||||
69.64,110.87 63.95,106.11 59.59,107.18
|
||||
54.24,108.49 55.65,114.08 55.91,118.00
|
||||
56.62,128.61 56.09,137.03 65.01,144.78
|
||||
66.33,145.92 74.46,150.40 70.40,152.84
|
||||
66.71,155.05 67.68,148.28 60.00,144.88
|
||||
47.43,139.32 43.18,142.13 31.00,144.00
|
||||
33.80,139.83 37.26,140.73 39.91,136.79
|
||||
43.43,131.57 42.12,117.37 42.00,111.00
|
||||
36.27,113.33 36.76,114.54 35.00,120.00
|
||||
32.43,118.42 29.67,116.62 32.42,113.41 Z
|
||||
M 572.45,150.16
|
||||
C 567.94,148.57 574.05,143.54 576.00,142.57
|
||||
581.70,139.72 588.62,141.09 592.20,134.98
|
||||
595.43,129.47 588.92,119.17 586.42,114.00
|
||||
580.54,101.80 573.61,84.36 582.79,72.04
|
||||
583.98,70.44 585.42,68.90 587.04,67.74
|
||||
593.99,62.71 603.53,71.50 609.00,75.81
|
||||
610.77,77.20 613.70,79.93 615.99,80.06
|
||||
618.72,80.22 622.06,76.65 624.09,75.00
|
||||
627.11,72.55 638.40,65.17 642.00,65.13
|
||||
649.53,65.04 654.70,76.58 654.66,83.00
|
||||
654.61,91.33 653.63,100.09 650.92,108.00
|
||||
650.92,108.00 643.79,126.00 643.79,126.00
|
||||
643.79,126.00 643.00,136.00 643.00,136.00
|
||||
647.47,137.88 654.92,141.35 657.85,134.89
|
||||
658.42,133.21 658.02,128.12 657.85,126.00
|
||||
663.41,126.95 664.54,131.48 661.40,135.70
|
||||
658.23,139.97 652.78,141.30 647.83,142.05
|
||||
647.83,142.05 618.00,141.02 618.00,141.02
|
||||
618.00,141.02 606.00,142.00 606.00,142.00
|
||||
606.00,142.00 584.00,143.18 584.00,143.18
|
||||
584.00,143.18 574.00,145.00 574.00,145.00
|
||||
574.00,145.00 576.00,150.16 576.00,150.16
|
||||
574.83,150.26 573.70,150.80 572.45,150.16 Z
|
||||
M 214.00,66.00
|
||||
C 214.00,66.00 213.00,67.00 213.00,67.00
|
||||
213.00,67.00 213.00,66.00 213.00,66.00
|
||||
213.00,66.00 214.00,66.00 214.00,66.00 Z
|
||||
M 465.00,67.00
|
||||
C 465.00,67.00 499.00,67.00 499.00,67.00
|
||||
502.18,67.06 505.00,67.05 506.83,70.15
|
||||
509.17,74.12 506.40,84.08 506.00,89.00
|
||||
507.94,88.81 509.97,88.36 511.67,89.69
|
||||
514.42,91.86 512.94,95.41 509.94,96.34
|
||||
506.23,97.50 503.34,94.25 502.43,91.00
|
||||
501.09,86.20 503.71,67.84 494.02,70.65
|
||||
487.81,72.46 488.07,82.71 488.00,88.00
|
||||
488.00,88.00 488.00,109.00 488.00,109.00
|
||||
488.00,109.00 488.84,121.72 488.84,121.72
|
||||
488.83,133.21 489.50,138.08 500.00,144.00
|
||||
500.00,144.00 500.00,148.00 500.00,148.00
|
||||
500.00,148.00 496.00,149.00 496.00,149.00
|
||||
491.76,135.03 471.71,144.46 465.00,142.00
|
||||
476.26,140.94 474.33,135.76 475.17,127.00
|
||||
475.17,127.00 476.00,102.00 476.00,102.00
|
||||
476.00,102.00 475.04,90.00 475.04,90.00
|
||||
474.82,85.22 475.06,73.56 470.85,70.78
|
||||
467.32,68.45 464.24,70.80 462.57,74.04
|
||||
459.50,80.00 461.98,84.67 459.94,92.00
|
||||
459.27,94.42 456.77,99.61 453.20,97.83
|
||||
451.13,96.63 452.41,93.73 453.20,92.00
|
||||
453.20,92.00 456.00,93.00 456.00,93.00
|
||||
458.16,83.22 448.16,67.29 465.00,67.00 Z
|
||||
M 432.00,79.00
|
||||
C 424.78,77.48 421.42,76.03 422.00,68.00
|
||||
428.29,68.88 433.43,71.97 432.00,79.00 Z
|
||||
M 407.00,74.00
|
||||
C 407.00,74.00 398.00,75.00 398.00,75.00
|
||||
399.14,68.50 404.09,68.83 407.00,74.00 Z
|
||||
M 66.00,99.52
|
||||
C 68.22,97.72 70.41,95.60 71.69,93.00
|
||||
73.81,88.66 73.40,80.05 70.30,76.23
|
||||
67.64,72.93 60.96,71.55 58.16,75.43
|
||||
57.04,76.98 56.36,81.04 56.04,83.00
|
||||
56.04,83.00 55.25,91.00 55.25,91.00
|
||||
55.25,91.00 56.00,104.00 56.00,104.00
|
||||
60.53,103.25 62.34,102.47 66.00,99.52 Z
|
||||
M 531.86,97.01
|
||||
C 532.11,100.09 531.49,104.65 535.23,105.70
|
||||
547.64,109.21 544.12,89.68 544.00,83.00
|
||||
543.91,78.37 543.67,77.78 541.00,74.00
|
||||
530.22,80.35 530.97,86.10 531.86,97.01 Z
|
||||
M 700.08,103.26
|
||||
C 701.53,101.60 701.29,99.03 701.20,97.00
|
||||
701.01,92.86 701.85,78.03 699.26,75.64
|
||||
697.02,73.58 694.09,75.43 692.39,77.23
|
||||
688.85,80.97 689.01,85.23 689.00,90.00
|
||||
689.00,90.00 689.00,96.00 689.00,96.00
|
||||
689.06,100.53 689.43,101.70 690.00,106.00
|
||||
692.53,105.66 698.41,105.18 700.08,103.26 Z
|
||||
M 403.00,81.00
|
||||
C 394.42,84.76 388.44,86.50 385.00,76.00
|
||||
392.54,72.92 397.75,74.83 403.00,81.00 Z
|
||||
M 415.42,84.11
|
||||
C 407.99,77.95 416.02,68.56 420.90,79.02
|
||||
420.90,79.02 424.00,87.00 424.00,87.00
|
||||
421.35,86.32 417.48,85.83 415.42,84.11 Z
|
||||
M 608.44,138.15
|
||||
C 611.56,135.40 610.96,127.87 611.00,124.00
|
||||
611.00,124.00 611.74,111.28 611.74,111.28
|
||||
611.74,111.28 610.00,91.00 610.00,91.00
|
||||
609.41,87.93 608.97,83.61 607.26,81.04
|
||||
604.90,77.49 599.25,74.06 595.85,78.31
|
||||
594.05,80.57 594.04,84.25 594.00,87.00
|
||||
593.81,103.22 598.09,108.15 598.91,121.00
|
||||
599.40,128.61 597.23,132.09 596.00,139.00
|
||||
599.73,139.30 605.37,140.84 608.44,138.15 Z
|
||||
M 639.52,110.00
|
||||
C 641.95,101.12 643.69,91.54 639.52,83.00
|
||||
636.81,78.12 630.41,73.24 626.09,79.28
|
||||
623.46,82.94 623.96,90.55 624.00,95.00
|
||||
624.00,95.00 625.72,125.00 625.72,125.00
|
||||
626.14,128.27 626.63,136.06 628.85,138.40
|
||||
630.69,140.34 638.50,140.15 642.00,141.00
|
||||
642.00,141.00 639.00,127.00 639.00,127.00
|
||||
635.92,122.72 638.49,114.89 639.52,110.00 Z
|
||||
M 350.00,77.00
|
||||
C 350.00,77.00 351.00,78.00 351.00,78.00
|
||||
351.00,78.00 351.00,77.00 351.00,77.00
|
||||
351.00,77.00 350.00,77.00 350.00,77.00 Z
|
||||
M 309.00,80.00
|
||||
C 309.00,80.00 305.22,91.00 305.22,91.00
|
||||
305.22,91.00 304.00,106.00 304.00,106.00
|
||||
300.24,94.39 304.44,94.18 300.00,91.00
|
||||
301.47,85.40 302.05,79.42 309.00,80.00 Z
|
||||
M 428.20,86.90
|
||||
C 427.45,84.76 427.91,81.70 430.88,82.18
|
||||
433.36,82.59 435.08,85.78 435.55,88.00
|
||||
436.34,91.82 434.66,103.42 433.00,107.00
|
||||
433.00,107.00 431.00,107.00 431.00,107.00
|
||||
426.15,97.76 427.19,99.28 433.00,91.00
|
||||
430.62,90.09 429.14,89.57 428.20,86.90 Z
|
||||
M 358.79,94.41
|
||||
C 360.55,93.10 364.96,88.09 362.35,85.98
|
||||
360.87,84.78 356.89,85.01 355.00,85.00
|
||||
355.00,85.00 355.00,96.00 355.00,96.00
|
||||
356.64,95.51 357.30,95.52 358.79,94.41 Z
|
||||
M 404.71,90.00
|
||||
C 404.92,88.29 405.48,85.29 407.42,84.72
|
||||
410.10,83.93 412.11,86.82 412.69,89.02
|
||||
413.97,93.94 412.32,98.74 410.00,103.00
|
||||
405.84,99.54 404.03,95.51 404.71,90.00 Z
|
||||
M 315.00,87.00
|
||||
C 315.00,87.00 316.00,88.00 316.00,88.00
|
||||
316.00,88.00 316.00,87.00 316.00,87.00
|
||||
316.00,87.00 315.00,87.00 315.00,87.00 Z
|
||||
M 401.00,99.00
|
||||
C 393.41,98.39 392.35,94.99 392.00,88.00
|
||||
400.05,88.28 400.38,91.60 401.00,99.00 Z
|
||||
M 418.86,94.06
|
||||
C 419.14,92.37 420.43,89.98 422.49,91.17
|
||||
426.16,93.28 424.21,100.08 423.00,103.00
|
||||
423.00,103.00 421.00,103.00 421.00,103.00
|
||||
419.71,100.27 418.33,97.17 418.86,94.06 Z
|
||||
M 370.00,103.00
|
||||
C 370.00,103.00 371.00,104.00 371.00,104.00
|
||||
371.00,104.00 371.00,103.00 371.00,103.00
|
||||
371.00,103.00 370.00,103.00 370.00,103.00 Z
|
||||
M 394.82,110.00
|
||||
C 395.40,103.94 400.24,102.33 401.93,104.62
|
||||
404.79,108.46 397.61,115.03 394.82,117.00
|
||||
394.82,117.00 394.82,110.00 394.82,110.00 Z
|
||||
M 418.00,104.00
|
||||
C 421.68,112.00 418.75,117.04 412.00,122.00
|
||||
409.96,114.27 408.94,107.17 418.00,104.00 Z
|
||||
M 308.00,115.00
|
||||
C 308.00,115.00 305.00,107.00 305.00,107.00
|
||||
310.42,107.95 310.82,110.60 308.00,115.00 Z
|
||||
M 423.41,117.44
|
||||
C 426.94,113.73 423.19,110.34 431.00,109.00
|
||||
430.43,116.01 428.41,115.72 424.63,121.00
|
||||
423.41,122.70 421.94,125.89 420.37,127.01
|
||||
419.15,127.87 418.33,127.77 417.00,128.00
|
||||
417.00,128.00 417.00,120.00 417.00,120.00
|
||||
419.20,119.53 421.77,119.16 423.41,117.44 Z
|
||||
M 330.00,127.00
|
||||
C 330.00,127.00 328.00,127.00 328.00,127.00
|
||||
325.21,121.55 323.37,119.22 325.00,113.00
|
||||
330.92,116.56 331.81,120.56 330.00,127.00 Z
|
||||
M 407.00,115.00
|
||||
C 407.60,121.33 407.10,123.87 402.00,128.00
|
||||
399.06,121.66 398.49,115.71 407.00,115.00 Z
|
||||
M 315.00,118.00
|
||||
C 315.00,118.00 316.00,125.00 316.00,125.00
|
||||
316.00,125.00 315.00,126.00 315.00,126.00
|
||||
315.00,126.00 313.00,126.00 313.00,126.00
|
||||
313.00,126.00 311.00,118.00 311.00,118.00
|
||||
311.00,118.00 315.00,118.00 315.00,118.00 Z
|
||||
M 397.00,123.00
|
||||
C 396.60,129.74 394.82,132.55 388.00,134.00
|
||||
388.19,126.60 389.40,124.27 397.00,123.00 Z
|
||||
M 412.00,127.00
|
||||
C 414.18,132.64 412.24,133.92 407.00,136.00
|
||||
406.48,130.78 406.88,128.89 412.00,127.00 Z
|
||||
M 383.00,132.00
|
||||
C 381.93,137.00 380.98,138.50 376.00,140.00
|
||||
376.63,134.60 377.46,132.92 383.00,132.00 Z
|
||||
M 394.09,139.00
|
||||
C 395.64,128.59 406.52,132.00 401.26,139.95
|
||||
400.61,140.94 399.82,141.75 398.89,142.49
|
||||
397.32,143.75 395.81,144.26 394.09,145.00
|
||||
394.09,145.00 394.09,139.00 394.09,139.00 Z
|
||||
M 391.00,140.00
|
||||
C 390.53,147.98 387.78,147.41 380.00,150.00
|
||||
380.88,142.41 383.90,141.03 391.00,140.00 Z
|
||||
M 376.00,145.00
|
||||
C 375.18,152.12 372.13,153.99 366.00,157.00
|
||||
366.10,148.88 367.39,145.81 376.00,145.00 Z
|
||||
M 383.00,146.00
|
||||
C 383.00,146.00 384.00,147.00 384.00,147.00
|
||||
384.00,147.00 384.00,146.00 384.00,146.00
|
||||
384.00,146.00 383.00,146.00 383.00,146.00 Z" />
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="10.4167in" height="3.19444in"
|
||||
viewBox="0 0 750 230">
|
||||
<path id="Selection"
|
||||
fill="#5d7f7f" stroke="#5d7f7f" stroke-width="1"
|
||||
d="M 339.00,15.00
|
||||
C 341.79,17.18 342.77,17.60 346.00,16.00
|
||||
347.87,22.73 349.90,21.55 348.00,28.00
|
||||
348.00,28.00 352.00,29.00 352.00,29.00
|
||||
352.00,29.00 349.00,34.00 349.00,34.00
|
||||
349.00,34.00 356.00,35.00 356.00,35.00
|
||||
356.00,35.00 354.24,41.91 354.24,41.91
|
||||
354.24,41.91 363.99,52.00 363.99,52.00
|
||||
363.99,52.00 379.00,71.00 379.00,71.00
|
||||
380.79,66.53 382.45,59.93 388.04,59.16
|
||||
388.04,59.16 401.00,60.00 401.00,60.00
|
||||
398.57,71.42 390.88,69.72 382.00,69.00
|
||||
382.00,87.95 380.85,108.05 374.31,126.00
|
||||
368.70,141.38 360.64,143.46 360.00,155.00
|
||||
348.69,153.63 349.33,161.46 341.00,166.00
|
||||
340.65,167.81 340.92,168.14 339.59,169.79
|
||||
336.16,174.07 322.61,178.03 316.00,182.79
|
||||
308.99,187.83 307.02,190.09 312.00,197.00
|
||||
309.75,199.38 308.03,201.09 306.41,204.00
|
||||
302.20,211.57 300.12,230.49 287.00,222.00
|
||||
298.75,221.31 301.91,211.18 302.00,201.00
|
||||
302.00,201.00 296.00,202.00 296.00,202.00
|
||||
296.29,192.93 299.29,197.07 303.15,191.78
|
||||
305.17,189.01 304.70,185.87 308.36,181.52
|
||||
314.50,174.22 321.87,174.47 325.00,162.00
|
||||
320.35,161.58 318.46,161.29 315.00,158.00
|
||||
315.00,158.00 325.00,155.00 325.00,155.00
|
||||
318.56,142.44 321.41,139.86 322.00,127.00
|
||||
328.35,129.84 333.26,129.57 333.00,121.00
|
||||
333.00,121.00 342.00,127.00 342.00,127.00
|
||||
342.00,127.00 342.00,119.00 342.00,119.00
|
||||
342.00,119.00 348.04,125.69 348.04,125.69
|
||||
348.04,125.69 357.00,129.00 357.00,129.00
|
||||
357.00,129.00 343.00,127.00 343.00,127.00
|
||||
343.00,127.00 351.00,138.00 351.00,138.00
|
||||
356.46,134.50 357.61,133.58 358.00,127.00
|
||||
359.39,126.92 360.12,127.25 361.44,126.22
|
||||
363.97,124.28 366.66,115.22 367.00,112.00
|
||||
362.87,113.55 360.30,114.69 356.00,113.00
|
||||
363.82,112.61 367.86,110.18 369.00,102.00
|
||||
369.00,102.00 346.00,108.00 346.00,108.00
|
||||
346.00,108.00 349.00,112.00 349.00,112.00
|
||||
349.00,112.00 343.00,113.00 343.00,113.00
|
||||
339.25,107.39 334.11,111.43 329.09,110.12
|
||||
325.61,109.21 326.04,106.81 320.00,105.00
|
||||
322.34,111.23 322.87,113.81 320.00,120.00
|
||||
320.00,120.00 318.00,120.00 318.00,120.00
|
||||
314.84,112.04 313.63,108.46 316.00,100.00
|
||||
316.00,100.00 311.00,101.00 311.00,101.00
|
||||
311.00,101.00 310.00,100.00 310.00,100.00
|
||||
310.00,100.00 314.00,73.00 314.00,73.00
|
||||
314.00,73.00 303.00,77.00 303.00,77.00
|
||||
305.49,70.28 307.00,68.50 314.00,67.00
|
||||
313.29,61.22 316.97,59.18 322.00,57.39
|
||||
334.40,52.95 337.46,62.26 351.00,68.00
|
||||
351.00,68.00 352.00,65.00 352.00,65.00
|
||||
352.00,65.00 357.00,68.00 357.00,68.00
|
||||
354.85,70.70 352.63,73.27 353.13,77.00
|
||||
353.81,82.08 358.45,85.33 362.85,81.57
|
||||
366.87,78.13 364.84,75.04 363.37,71.00
|
||||
360.59,63.41 359.25,56.08 350.00,55.00
|
||||
350.00,55.00 352.00,50.00 352.00,50.00
|
||||
348.20,48.37 340.93,44.53 337.00,44.71
|
||||
331.80,44.95 319.97,52.49 315.47,49.97
|
||||
313.88,49.08 312.99,47.44 312.00,46.00
|
||||
312.00,46.00 337.00,15.00 337.00,15.00
|
||||
337.00,15.00 339.00,15.00 339.00,15.00 Z
|
||||
M 326.00,42.00
|
||||
C 329.84,47.82 335.87,44.84 337.00,38.00
|
||||
337.00,38.00 326.00,42.00 326.00,42.00 Z
|
||||
M 339.96,64.53
|
||||
C 336.57,61.78 326.66,56.55 322.39,59.06
|
||||
319.15,60.97 317.26,69.41 316.62,73.00
|
||||
314.50,84.73 317.94,100.12 330.01,105.07
|
||||
334.22,106.80 336.64,107.14 341.00,106.00
|
||||
341.00,106.00 340.00,100.83 340.00,100.83
|
||||
341.81,100.98 344.24,101.02 346.00,100.83
|
||||
350.97,99.62 352.65,95.69 353.30,91.00
|
||||
353.89,86.81 351.95,86.09 352.00,80.00
|
||||
347.17,75.18 345.67,69.15 339.96,64.53 Z
|
||||
M 153.26,62.15
|
||||
C 154.46,66.89 147.21,68.99 146.08,76.96
|
||||
144.16,90.43 143.83,125.44 144.00,140.00
|
||||
144.04,142.95 145.00,154.80 146.17,156.94
|
||||
150.67,165.11 161.83,154.88 165.92,161.49
|
||||
168.64,165.90 161.56,166.85 159.00,167.00
|
||||
159.00,167.00 161.00,163.00 161.00,163.00
|
||||
145.14,159.19 137.22,176.94 121.00,178.00
|
||||
123.71,173.94 126.62,170.56 128.54,166.00
|
||||
133.37,154.53 132.00,142.19 132.00,130.00
|
||||
124.20,133.72 122.55,141.22 116.00,142.07
|
||||
109.07,142.96 104.96,134.58 103.68,129.00
|
||||
100.38,114.64 106.84,98.91 107.00,85.00
|
||||
107.04,81.13 107.30,76.42 105.15,73.02
|
||||
102.05,68.20 98.69,67.92 96.00,73.02
|
||||
102.58,75.31 97.35,79.09 94.60,76.38
|
||||
91.44,73.28 94.43,65.53 102.28,66.53
|
||||
109.56,67.45 113.49,73.40 115.10,80.00
|
||||
117.99,91.81 115.95,101.46 116.00,113.00
|
||||
116.02,117.71 118.72,134.46 126.71,128.51
|
||||
130.98,125.34 131.97,120.91 132.77,116.00
|
||||
132.77,116.00 132.77,86.00 132.77,86.00
|
||||
132.96,82.94 132.73,78.82 131.49,76.00
|
||||
128.70,69.64 124.04,70.45 121.00,66.00
|
||||
131.56,70.06 141.58,71.62 151.00,64.00
|
||||
151.00,64.00 147.00,63.00 147.00,63.00
|
||||
149.00,57.50 152.71,60.00 153.26,62.15 Z
|
||||
M 405.23,64.60
|
||||
C 403.72,61.97 405.77,59.26 409.29,59.63
|
||||
413.93,60.13 415.44,63.38 422.00,63.00
|
||||
418.23,72.88 406.90,67.51 405.23,64.60 Z
|
||||
M 526.00,61.00
|
||||
C 526.00,61.00 527.00,65.00 527.00,65.00
|
||||
527.00,65.00 522.00,66.00 522.00,66.00
|
||||
523.71,67.84 524.75,69.21 527.09,70.35
|
||||
530.96,72.22 547.44,72.19 552.00,71.39
|
||||
556.89,70.52 562.16,68.14 567.00,70.00
|
||||
555.55,76.71 558.99,80.27 557.72,91.00
|
||||
557.72,91.00 557.00,118.00 557.00,118.00
|
||||
556.97,121.93 557.56,131.57 558.89,134.99
|
||||
560.06,137.98 562.94,140.46 565.00,143.00
|
||||
554.28,141.59 548.63,139.55 538.00,143.00
|
||||
538.00,143.00 539.00,148.00 539.00,148.00
|
||||
539.00,148.00 533.00,148.00 533.00,148.00
|
||||
533.74,138.98 538.48,141.72 541.98,135.00
|
||||
544.22,130.70 545.10,112.93 544.00,108.00
|
||||
540.84,108.78 535.85,108.95 533.74,111.43
|
||||
531.62,113.92 532.04,119.55 531.33,123.00
|
||||
529.66,131.19 526.81,140.78 519.83,146.01
|
||||
515.24,149.45 508.26,149.08 508.37,142.00
|
||||
508.44,137.44 513.28,132.10 517.08,130.00
|
||||
515.79,133.42 513.15,137.68 517.08,140.60
|
||||
518.30,141.19 519.45,141.39 520.73,140.60
|
||||
522.90,139.80 524.14,136.15 524.66,134.00
|
||||
525.67,129.74 525.21,115.84 522.98,112.22
|
||||
521.49,109.79 517.53,108.32 515.00,107.00
|
||||
516.12,103.42 516.40,103.13 520.00,102.00
|
||||
520.00,102.00 520.00,107.00 520.00,107.00
|
||||
520.00,107.00 523.00,107.00 523.00,107.00
|
||||
523.00,92.30 523.02,87.28 532.00,75.00
|
||||
524.74,71.92 519.92,71.01 521.00,62.00
|
||||
521.00,62.00 526.00,61.00 526.00,61.00 Z
|
||||
M 684.00,61.00
|
||||
C 682.93,63.87 683.04,63.80 680.00,64.00
|
||||
682.69,72.87 690.66,70.92 698.00,71.10
|
||||
705.86,71.28 706.13,71.21 714.00,69.74
|
||||
717.76,69.04 720.23,67.75 724.00,69.00
|
||||
720.76,71.33 717.72,73.19 716.15,77.04
|
||||
714.39,81.33 715.28,87.28 714.83,92.00
|
||||
713.98,100.90 712.91,126.28 715.89,134.00
|
||||
717.24,137.49 720.61,140.09 723.00,143.00
|
||||
712.34,140.38 705.69,139.99 694.95,142.00
|
||||
695.24,143.41 695.80,145.05 694.95,146.38
|
||||
693.66,148.18 690.62,147.44 690.63,144.87
|
||||
690.64,140.51 697.17,139.04 699.27,133.96
|
||||
700.49,131.00 701.96,112.01 702.00,108.00
|
||||
698.10,108.04 693.41,107.85 690.74,111.28
|
||||
688.58,114.04 689.15,118.57 688.54,122.00
|
||||
687.02,130.58 683.49,141.36 675.71,146.20
|
||||
669.89,149.82 665.04,145.88 665.52,141.00
|
||||
665.99,136.31 670.07,132.03 674.00,130.00
|
||||
673.16,132.11 671.91,134.63 672.39,136.96
|
||||
673.84,143.99 679.79,139.66 681.53,135.42
|
||||
683.36,130.98 682.66,115.16 680.02,111.27
|
||||
678.05,108.38 674.33,108.29 673.25,105.77
|
||||
672.21,103.35 674.38,102.12 676.00,101.00
|
||||
676.00,101.00 679.00,107.00 679.00,107.00
|
||||
679.00,107.00 681.76,88.00 681.76,88.00
|
||||
681.76,88.00 689.00,74.00 689.00,74.00
|
||||
680.77,71.12 678.91,70.67 678.00,62.00
|
||||
678.00,62.00 684.00,61.00 684.00,61.00 Z
|
||||
M 152.00,63.00
|
||||
C 152.00,63.00 153.00,64.00 153.00,64.00
|
||||
153.00,64.00 153.00,63.00 153.00,63.00
|
||||
153.00,63.00 152.00,63.00 152.00,63.00 Z
|
||||
M 164.00,67.52
|
||||
C 170.74,66.16 175.50,72.22 176.96,78.00
|
||||
179.80,89.26 175.86,102.25 176.00,114.00
|
||||
176.08,120.36 178.93,129.99 185.04,133.13
|
||||
188.86,135.10 193.80,131.44 195.26,127.91
|
||||
196.07,125.96 195.99,123.10 196.00,121.00
|
||||
196.06,109.13 195.53,89.30 192.56,78.00
|
||||
191.79,75.09 191.18,73.65 188.86,71.63
|
||||
187.15,70.14 182.70,68.32 184.17,65.35
|
||||
184.69,64.29 185.95,63.52 187.06,63.23
|
||||
189.12,62.68 190.17,63.35 192.00,64.00
|
||||
192.00,64.00 192.00,66.00 192.00,66.00
|
||||
192.00,66.00 189.00,69.00 189.00,69.00
|
||||
189.00,69.00 212.00,66.00 212.00,66.00
|
||||
212.00,66.00 207.62,78.00 207.62,78.00
|
||||
206.04,85.04 207.13,107.10 207.62,115.00
|
||||
208.12,119.27 207.92,129.27 209.58,132.85
|
||||
212.81,139.81 221.31,131.38 223.00,141.00
|
||||
223.00,141.00 214.00,139.51 214.00,139.51
|
||||
214.00,139.51 196.00,148.00 196.00,148.00
|
||||
196.00,148.00 195.00,135.00 195.00,135.00
|
||||
191.36,137.60 187.83,141.60 184.04,143.52
|
||||
173.88,148.66 166.56,141.72 163.93,132.00
|
||||
159.96,117.37 168.61,103.07 170.70,89.00
|
||||
171.41,84.21 172.82,66.07 163.00,70.08
|
||||
161.45,70.71 160.26,71.95 159.00,73.00
|
||||
162.71,74.64 163.55,74.80 163.00,79.00
|
||||
152.97,76.53 159.29,68.47 164.00,67.52 Z
|
||||
M 223.76,71.14
|
||||
C 227.35,65.41 235.38,66.50 239.15,71.14
|
||||
242.19,75.03 242.94,81.28 243.00,86.00
|
||||
243.00,86.00 241.01,113.00 241.01,113.00
|
||||
241.17,119.69 243.41,128.13 249.17,132.19
|
||||
253.82,135.46 259.20,131.76 260.79,126.96
|
||||
261.08,125.18 261.00,121.92 260.79,120.00
|
||||
261.02,109.33 260.45,87.85 257.75,78.00
|
||||
255.33,69.19 247.34,69.92 249.40,65.24
|
||||
250.87,61.91 254.51,63.08 257.00,64.00
|
||||
257.00,64.00 255.00,69.00 255.00,69.00
|
||||
255.00,69.00 279.00,67.00 279.00,67.00
|
||||
276.13,69.51 274.68,71.32 273.41,75.00
|
||||
270.60,83.16 272.24,106.29 272.72,115.74
|
||||
272.89,119.09 273.47,130.35 274.59,132.85
|
||||
277.01,138.23 283.27,134.17 286.58,136.81
|
||||
289.20,138.90 286.40,143.11 283.00,138.00
|
||||
283.00,138.00 262.00,148.00 262.00,148.00
|
||||
262.00,148.00 260.00,134.00 260.00,134.00
|
||||
256.53,137.46 251.69,142.72 247.00,144.30
|
||||
235.88,148.04 229.22,137.64 228.17,128.00
|
||||
226.78,115.19 232.81,103.25 235.33,91.00
|
||||
237.26,81.64 235.38,77.29 236.00,71.00
|
||||
230.14,69.04 228.30,67.37 225.00,74.00
|
||||
225.00,74.00 229.00,74.00 229.00,74.00
|
||||
227.44,82.93 220.20,76.64 223.76,71.14 Z
|
||||
M 32.42,113.41
|
||||
C 34.32,111.20 38.21,110.66 40.31,107.78
|
||||
43.26,104.01 41.55,87.64 40.31,83.00
|
||||
37.48,73.50 30.99,71.16 33.37,66.15
|
||||
37.05,58.39 54.22,66.85 42.00,69.00
|
||||
42.00,69.00 41.00,64.00 41.00,64.00
|
||||
32.02,67.78 37.44,72.13 42.00,72.47
|
||||
52.48,72.86 66.47,64.71 79.99,72.47
|
||||
93.61,80.56 88.19,98.06 73.00,102.00
|
||||
73.00,102.00 73.00,104.00 73.00,104.00
|
||||
75.57,104.52 79.64,105.33 81.89,106.57
|
||||
91.24,111.68 84.47,122.67 80.92,129.00
|
||||
78.34,133.29 73.57,141.94 80.92,144.36
|
||||
89.23,147.02 87.24,137.27 87.26,137.15
|
||||
87.50,135.39 88.91,134.19 90.60,134.74
|
||||
94.36,135.88 92.14,141.85 90.60,143.81
|
||||
86.51,148.43 78.32,147.90 74.19,143.81
|
||||
64.32,134.19 72.86,122.64 70.77,115.00
|
||||
69.64,110.87 63.95,106.11 59.59,107.18
|
||||
54.24,108.49 55.65,114.08 55.91,118.00
|
||||
56.62,128.61 56.09,137.03 65.01,144.78
|
||||
66.33,145.92 74.46,150.40 70.40,152.84
|
||||
66.71,155.05 67.68,148.28 60.00,144.88
|
||||
47.43,139.32 43.18,142.13 31.00,144.00
|
||||
33.80,139.83 37.26,140.73 39.91,136.79
|
||||
43.43,131.57 42.12,117.37 42.00,111.00
|
||||
36.27,113.33 36.76,114.54 35.00,120.00
|
||||
32.43,118.42 29.67,116.62 32.42,113.41 Z
|
||||
M 572.45,150.16
|
||||
C 567.94,148.57 574.05,143.54 576.00,142.57
|
||||
581.70,139.72 588.62,141.09 592.20,134.98
|
||||
595.43,129.47 588.92,119.17 586.42,114.00
|
||||
580.54,101.80 573.61,84.36 582.79,72.04
|
||||
583.98,70.44 585.42,68.90 587.04,67.74
|
||||
593.99,62.71 603.53,71.50 609.00,75.81
|
||||
610.77,77.20 613.70,79.93 615.99,80.06
|
||||
618.72,80.22 622.06,76.65 624.09,75.00
|
||||
627.11,72.55 638.40,65.17 642.00,65.13
|
||||
649.53,65.04 654.70,76.58 654.66,83.00
|
||||
654.61,91.33 653.63,100.09 650.92,108.00
|
||||
650.92,108.00 643.79,126.00 643.79,126.00
|
||||
643.79,126.00 643.00,136.00 643.00,136.00
|
||||
647.47,137.88 654.92,141.35 657.85,134.89
|
||||
658.42,133.21 658.02,128.12 657.85,126.00
|
||||
663.41,126.95 664.54,131.48 661.40,135.70
|
||||
658.23,139.97 652.78,141.30 647.83,142.05
|
||||
647.83,142.05 618.00,141.02 618.00,141.02
|
||||
618.00,141.02 606.00,142.00 606.00,142.00
|
||||
606.00,142.00 584.00,143.18 584.00,143.18
|
||||
584.00,143.18 574.00,145.00 574.00,145.00
|
||||
574.00,145.00 576.00,150.16 576.00,150.16
|
||||
574.83,150.26 573.70,150.80 572.45,150.16 Z
|
||||
M 214.00,66.00
|
||||
C 214.00,66.00 213.00,67.00 213.00,67.00
|
||||
213.00,67.00 213.00,66.00 213.00,66.00
|
||||
213.00,66.00 214.00,66.00 214.00,66.00 Z
|
||||
M 465.00,67.00
|
||||
C 465.00,67.00 499.00,67.00 499.00,67.00
|
||||
502.18,67.06 505.00,67.05 506.83,70.15
|
||||
509.17,74.12 506.40,84.08 506.00,89.00
|
||||
507.94,88.81 509.97,88.36 511.67,89.69
|
||||
514.42,91.86 512.94,95.41 509.94,96.34
|
||||
506.23,97.50 503.34,94.25 502.43,91.00
|
||||
501.09,86.20 503.71,67.84 494.02,70.65
|
||||
487.81,72.46 488.07,82.71 488.00,88.00
|
||||
488.00,88.00 488.00,109.00 488.00,109.00
|
||||
488.00,109.00 488.84,121.72 488.84,121.72
|
||||
488.83,133.21 489.50,138.08 500.00,144.00
|
||||
500.00,144.00 500.00,148.00 500.00,148.00
|
||||
500.00,148.00 496.00,149.00 496.00,149.00
|
||||
491.76,135.03 471.71,144.46 465.00,142.00
|
||||
476.26,140.94 474.33,135.76 475.17,127.00
|
||||
475.17,127.00 476.00,102.00 476.00,102.00
|
||||
476.00,102.00 475.04,90.00 475.04,90.00
|
||||
474.82,85.22 475.06,73.56 470.85,70.78
|
||||
467.32,68.45 464.24,70.80 462.57,74.04
|
||||
459.50,80.00 461.98,84.67 459.94,92.00
|
||||
459.27,94.42 456.77,99.61 453.20,97.83
|
||||
451.13,96.63 452.41,93.73 453.20,92.00
|
||||
453.20,92.00 456.00,93.00 456.00,93.00
|
||||
458.16,83.22 448.16,67.29 465.00,67.00 Z
|
||||
M 432.00,79.00
|
||||
C 424.78,77.48 421.42,76.03 422.00,68.00
|
||||
428.29,68.88 433.43,71.97 432.00,79.00 Z
|
||||
M 407.00,74.00
|
||||
C 407.00,74.00 398.00,75.00 398.00,75.00
|
||||
399.14,68.50 404.09,68.83 407.00,74.00 Z
|
||||
M 66.00,99.52
|
||||
C 68.22,97.72 70.41,95.60 71.69,93.00
|
||||
73.81,88.66 73.40,80.05 70.30,76.23
|
||||
67.64,72.93 60.96,71.55 58.16,75.43
|
||||
57.04,76.98 56.36,81.04 56.04,83.00
|
||||
56.04,83.00 55.25,91.00 55.25,91.00
|
||||
55.25,91.00 56.00,104.00 56.00,104.00
|
||||
60.53,103.25 62.34,102.47 66.00,99.52 Z
|
||||
M 531.86,97.01
|
||||
C 532.11,100.09 531.49,104.65 535.23,105.70
|
||||
547.64,109.21 544.12,89.68 544.00,83.00
|
||||
543.91,78.37 543.67,77.78 541.00,74.00
|
||||
530.22,80.35 530.97,86.10 531.86,97.01 Z
|
||||
M 700.08,103.26
|
||||
C 701.53,101.60 701.29,99.03 701.20,97.00
|
||||
701.01,92.86 701.85,78.03 699.26,75.64
|
||||
697.02,73.58 694.09,75.43 692.39,77.23
|
||||
688.85,80.97 689.01,85.23 689.00,90.00
|
||||
689.00,90.00 689.00,96.00 689.00,96.00
|
||||
689.06,100.53 689.43,101.70 690.00,106.00
|
||||
692.53,105.66 698.41,105.18 700.08,103.26 Z
|
||||
M 403.00,81.00
|
||||
C 394.42,84.76 388.44,86.50 385.00,76.00
|
||||
392.54,72.92 397.75,74.83 403.00,81.00 Z
|
||||
M 415.42,84.11
|
||||
C 407.99,77.95 416.02,68.56 420.90,79.02
|
||||
420.90,79.02 424.00,87.00 424.00,87.00
|
||||
421.35,86.32 417.48,85.83 415.42,84.11 Z
|
||||
M 608.44,138.15
|
||||
C 611.56,135.40 610.96,127.87 611.00,124.00
|
||||
611.00,124.00 611.74,111.28 611.74,111.28
|
||||
611.74,111.28 610.00,91.00 610.00,91.00
|
||||
609.41,87.93 608.97,83.61 607.26,81.04
|
||||
604.90,77.49 599.25,74.06 595.85,78.31
|
||||
594.05,80.57 594.04,84.25 594.00,87.00
|
||||
593.81,103.22 598.09,108.15 598.91,121.00
|
||||
599.40,128.61 597.23,132.09 596.00,139.00
|
||||
599.73,139.30 605.37,140.84 608.44,138.15 Z
|
||||
M 639.52,110.00
|
||||
C 641.95,101.12 643.69,91.54 639.52,83.00
|
||||
636.81,78.12 630.41,73.24 626.09,79.28
|
||||
623.46,82.94 623.96,90.55 624.00,95.00
|
||||
624.00,95.00 625.72,125.00 625.72,125.00
|
||||
626.14,128.27 626.63,136.06 628.85,138.40
|
||||
630.69,140.34 638.50,140.15 642.00,141.00
|
||||
642.00,141.00 639.00,127.00 639.00,127.00
|
||||
635.92,122.72 638.49,114.89 639.52,110.00 Z
|
||||
M 350.00,77.00
|
||||
C 350.00,77.00 351.00,78.00 351.00,78.00
|
||||
351.00,78.00 351.00,77.00 351.00,77.00
|
||||
351.00,77.00 350.00,77.00 350.00,77.00 Z
|
||||
M 309.00,80.00
|
||||
C 309.00,80.00 305.22,91.00 305.22,91.00
|
||||
305.22,91.00 304.00,106.00 304.00,106.00
|
||||
300.24,94.39 304.44,94.18 300.00,91.00
|
||||
301.47,85.40 302.05,79.42 309.00,80.00 Z
|
||||
M 428.20,86.90
|
||||
C 427.45,84.76 427.91,81.70 430.88,82.18
|
||||
433.36,82.59 435.08,85.78 435.55,88.00
|
||||
436.34,91.82 434.66,103.42 433.00,107.00
|
||||
433.00,107.00 431.00,107.00 431.00,107.00
|
||||
426.15,97.76 427.19,99.28 433.00,91.00
|
||||
430.62,90.09 429.14,89.57 428.20,86.90 Z
|
||||
M 358.79,94.41
|
||||
C 360.55,93.10 364.96,88.09 362.35,85.98
|
||||
360.87,84.78 356.89,85.01 355.00,85.00
|
||||
355.00,85.00 355.00,96.00 355.00,96.00
|
||||
356.64,95.51 357.30,95.52 358.79,94.41 Z
|
||||
M 404.71,90.00
|
||||
C 404.92,88.29 405.48,85.29 407.42,84.72
|
||||
410.10,83.93 412.11,86.82 412.69,89.02
|
||||
413.97,93.94 412.32,98.74 410.00,103.00
|
||||
405.84,99.54 404.03,95.51 404.71,90.00 Z
|
||||
M 315.00,87.00
|
||||
C 315.00,87.00 316.00,88.00 316.00,88.00
|
||||
316.00,88.00 316.00,87.00 316.00,87.00
|
||||
316.00,87.00 315.00,87.00 315.00,87.00 Z
|
||||
M 401.00,99.00
|
||||
C 393.41,98.39 392.35,94.99 392.00,88.00
|
||||
400.05,88.28 400.38,91.60 401.00,99.00 Z
|
||||
M 418.86,94.06
|
||||
C 419.14,92.37 420.43,89.98 422.49,91.17
|
||||
426.16,93.28 424.21,100.08 423.00,103.00
|
||||
423.00,103.00 421.00,103.00 421.00,103.00
|
||||
419.71,100.27 418.33,97.17 418.86,94.06 Z
|
||||
M 370.00,103.00
|
||||
C 370.00,103.00 371.00,104.00 371.00,104.00
|
||||
371.00,104.00 371.00,103.00 371.00,103.00
|
||||
371.00,103.00 370.00,103.00 370.00,103.00 Z
|
||||
M 394.82,110.00
|
||||
C 395.40,103.94 400.24,102.33 401.93,104.62
|
||||
404.79,108.46 397.61,115.03 394.82,117.00
|
||||
394.82,117.00 394.82,110.00 394.82,110.00 Z
|
||||
M 418.00,104.00
|
||||
C 421.68,112.00 418.75,117.04 412.00,122.00
|
||||
409.96,114.27 408.94,107.17 418.00,104.00 Z
|
||||
M 308.00,115.00
|
||||
C 308.00,115.00 305.00,107.00 305.00,107.00
|
||||
310.42,107.95 310.82,110.60 308.00,115.00 Z
|
||||
M 423.41,117.44
|
||||
C 426.94,113.73 423.19,110.34 431.00,109.00
|
||||
430.43,116.01 428.41,115.72 424.63,121.00
|
||||
423.41,122.70 421.94,125.89 420.37,127.01
|
||||
419.15,127.87 418.33,127.77 417.00,128.00
|
||||
417.00,128.00 417.00,120.00 417.00,120.00
|
||||
419.20,119.53 421.77,119.16 423.41,117.44 Z
|
||||
M 330.00,127.00
|
||||
C 330.00,127.00 328.00,127.00 328.00,127.00
|
||||
325.21,121.55 323.37,119.22 325.00,113.00
|
||||
330.92,116.56 331.81,120.56 330.00,127.00 Z
|
||||
M 407.00,115.00
|
||||
C 407.60,121.33 407.10,123.87 402.00,128.00
|
||||
399.06,121.66 398.49,115.71 407.00,115.00 Z
|
||||
M 315.00,118.00
|
||||
C 315.00,118.00 316.00,125.00 316.00,125.00
|
||||
316.00,125.00 315.00,126.00 315.00,126.00
|
||||
315.00,126.00 313.00,126.00 313.00,126.00
|
||||
313.00,126.00 311.00,118.00 311.00,118.00
|
||||
311.00,118.00 315.00,118.00 315.00,118.00 Z
|
||||
M 397.00,123.00
|
||||
C 396.60,129.74 394.82,132.55 388.00,134.00
|
||||
388.19,126.60 389.40,124.27 397.00,123.00 Z
|
||||
M 412.00,127.00
|
||||
C 414.18,132.64 412.24,133.92 407.00,136.00
|
||||
406.48,130.78 406.88,128.89 412.00,127.00 Z
|
||||
M 383.00,132.00
|
||||
C 381.93,137.00 380.98,138.50 376.00,140.00
|
||||
376.63,134.60 377.46,132.92 383.00,132.00 Z
|
||||
M 394.09,139.00
|
||||
C 395.64,128.59 406.52,132.00 401.26,139.95
|
||||
400.61,140.94 399.82,141.75 398.89,142.49
|
||||
397.32,143.75 395.81,144.26 394.09,145.00
|
||||
394.09,145.00 394.09,139.00 394.09,139.00 Z
|
||||
M 391.00,140.00
|
||||
C 390.53,147.98 387.78,147.41 380.00,150.00
|
||||
380.88,142.41 383.90,141.03 391.00,140.00 Z
|
||||
M 376.00,145.00
|
||||
C 375.18,152.12 372.13,153.99 366.00,157.00
|
||||
366.10,148.88 367.39,145.81 376.00,145.00 Z
|
||||
M 383.00,146.00
|
||||
C 383.00,146.00 384.00,147.00 384.00,147.00
|
||||
384.00,147.00 384.00,146.00 384.00,146.00
|
||||
384.00,146.00 383.00,146.00 383.00,146.00 Z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 23 KiB |
@@ -1,2 +1,2 @@
|
||||
Swordpoint-character-sheet
|
||||
Fan made character sheet for the Swordpoint TTRPG by Gallant Knight Games
|
||||
Swordpoint-character-sheet
|
||||
Fan made character sheet for the Swordpoint TTRPG by Gallant Knight Games
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"html": "swordpoint.html",
|
||||
"css": "swordpoint.css",
|
||||
"authors": "Steve Valladolid",
|
||||
"roll20userid": "3665541",
|
||||
"preview": "swordpoint.png",
|
||||
"instructions": "Fan Made Character Sheet for the Swordpoint RPG by Gallant Knight Games",
|
||||
"legacy": true
|
||||
}
|
||||
{
|
||||
"html": "swordpoint.html",
|
||||
"css": "swordpoint.css",
|
||||
"authors": "Steve Valladolid",
|
||||
"roll20userid": "3665541",
|
||||
"preview": "swordpoint.png",
|
||||
"instructions": "Fan Made Character Sheet for the Swordpoint RPG by Gallant Knight Games",
|
||||
"legacy": true
|
||||
}
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
|
||||
.charsheet {
|
||||
background-color: #faf2f0;
|
||||
min-width: 600px;
|
||||
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
|
||||
input {
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
option {
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
|
||||
textarea {
|
||||
max-width:70%;
|
||||
max-height:10px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.charsheet {
|
||||
background-color: #faf2f0;
|
||||
min-width: 600px;
|
||||
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
|
||||
input {
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
option {
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
|
||||
textarea {
|
||||
max-width:70%;
|
||||
max-height:10px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,243 +1,243 @@
|
||||
<div class='row'>
|
||||
<div style="width:100%">
|
||||
<img src="https://i.ibb.co/hYCmVNs/Cover.jpg"/>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<p/>
|
||||
</div>
|
||||
<!-- General character descriptions -->
|
||||
|
||||
<div class='2colrow'>
|
||||
|
||||
<div class= 'col'>
|
||||
<div style='text-align:right; margin-right:10%'>
|
||||
<b>Character Name:</b><input type='text' name='attr_Name' style='width:250px'><br>
|
||||
<b>Age:</b><input type='text' name='attr_Age' style='width:250px'><br>
|
||||
<b>Profession:</b><input type='text' name="attr_Profession" style='width:250px'><br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
<div style='text-align:right; margin-right:25%'>
|
||||
<b>Rank:</b><input type='number' value='0' min='0' name='attr_Rank' style='width:50px'><br>
|
||||
<b>Experience Points:</b><input type="number" value='0' min='0' name="attr_experience" style='width:50px'><br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p></p>
|
||||
|
||||
<b>Background: </b><input type='text' name='attr_character_background' style='width:100%'><br>
|
||||
</b><input type='text' name='attr_character_background2' style='width:100%'><br>
|
||||
|
||||
<p>
|
||||
<p/>
|
||||
<!-- Characteristics & Rolls -->
|
||||
|
||||
<h3 style="margin-bottom: 0px; text-align: center; color: #FFF; background-color: #8a3433;">Characteristics</h3>
|
||||
|
||||
<p>
|
||||
<p/>
|
||||
|
||||
<div class='2colrow'>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='margin-left: 150px'>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_STR'></button><b>STR: </b><input type='number' value='0' min='0' input name='attr_STR'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_CON'></button><b>CON:</b><input type='number' value='0' min='0' name='attr_CON'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_COU'></button><b>COU:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_INT'></button><b> INT: </b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_POW'></button><b>POW:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_DEX'></button><b> DEX:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_APP'></button><b> APP:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align:left'>
|
||||
|
||||
<b>DAMAGE MODIFIER: </b><select name='attr_Dmg_Mod' style='width:80px'>
|
||||
<option value='0'>0</option>
|
||||
<option value='1'>-1d6</option>
|
||||
<option value='2'>-1d4</option>
|
||||
<option value='3'>+1d4</option>
|
||||
<option value='4'>+1d6</option>
|
||||
<option value='5'>+1d10</option>
|
||||
</select><br>
|
||||
|
||||
<b>HIT POINTS: </b><input type='number' value='0' min='0' name='attr_Hit_Points'><b> / </b><Input type='number' 'number' value='0' min='0' name='attr_Hit_Points_Max'><br>
|
||||
<b>-</b><br>
|
||||
<button class='characteristic-roll sheet-plain' name='roll_education' style='width: 100px' type='roll' value="&{template:default} {{name=Education Check}} {{Target = [[@{edu}]]}} {{Roll=[[1d100]]}}">Education</button><input type='number' value='0' min='0' name='attr_Edu'/><br>
|
||||
<b>MAGIC POINTS: </b><input type='number' value='0' name='attr_Magic_Pts'><br>
|
||||
<b>MOVEMENT (M): </b><input type='number' value='0' min='0' name='attr_Movement'><br>
|
||||
<b>STYLE POINTS: </b><input type='number' value='0' min="0" name="attr_Style"><b> / </b><Input type='number' value='0' min='0' name='attr_style_points_Max'><br>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ********************************************************************************************************************* -->
|
||||
<!-- Start of alpahbetical skills-->
|
||||
<p><p/>
|
||||
|
||||
<h3 style="margin-bottom: 0px; text-align: center; color: #FFF; background-color: #8a3433;">Skills</h3>
|
||||
<p><p/>
|
||||
|
||||
<div class='3colrow'>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align: center'>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_athletics' value='&{template:default} {{name=Athletics Check}} {{Target = [[@{athletics}]]}} {{Roll=[[1d100]]}}'>Athletics</button>
|
||||
<input type='number' name='attr_athletics' value='0' min='0' /><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_craft' value='&{template:default} {{name=Craft Check}} {{Target = [[@{craft}]]}} {{Roll=[[1d100]]}}'>Craft</button>
|
||||
<input type='number' name='attr_craft' value='0' min='0'><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_dodge' value='&{template:default} {{name=Dodge Check}} {{Target = [[@{dodge}]]}} {{Roll=[[1d100]]}}'>Dodge</button>
|
||||
<input type='number' name='attr_dodge' value='0' min='0'><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_endurance' value='&{template:default} {{name=Endurance Check}} {{Target = [[@{endurance}]]}} {{Roll=[[1d100]]}}'>Endurance</button>
|
||||
<input type='number' name='attr_endurance' value='0' min='0'><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_first_aid' value='&{template:default} {{name=Craft Check}} {{Target = [[@{craft}]]}} {{Roll=[[1d100]]}}'>First Aid</button>
|
||||
<input type='number' name='attr_first_aid' value='0' min='0'><br>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align: center'>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_lore" value="&{template:default} {{name=Lore Check}} {{Target = [[@{lore}]]}} {{Roll=[[1d100]]}}">Lore</button>
|
||||
<input type="number" name="attr_lore" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_melee" value="&{template:default} {{name=Melee Check}} {{Target = [[@{melee}]]}} {{Roll=[[1d100]]}}">Melee</button>
|
||||
<input type="number" name="attr_melee" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_perception" value="&{template:default} {{name=Perception Check}} {{Target = [[@{perception}]]}} {{Roll=[[1d100]]}}">Perception</button>
|
||||
<input type="number" name="attr_perception" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_persuasion" value="&{template:default} {{name=Persuasion Check}} {{Target = [[@{persuasion}]]}} {{Roll=[[1d100]]}}">Persuasion</button>
|
||||
<input type="number" name="attr_persuasion" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_ride" value="&{template:default} {{name=Ride Check}} {{Target = [[@{ride}]]}} {{Roll=[[1d100]]}}">Ride</button>
|
||||
<input type="number" name="attr_ride" value="0" min="0" /><br>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align: center'>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_shooting" value="&{template:default} {{name=Shooting Check}} {{Target = [[@{shooting}]]}} {{Roll=[[1d100]]}}">Shooting</button>
|
||||
<input type="number" name="attr_shooting" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_spellcasting" value="&{template:default} {{name=Thievery Check}} {{Target = [[@{spellcasting}]]}} {{Roll=[[1d100]]}}">Spellcasting</button>
|
||||
<input type="number" name="attr_spellcasting" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_stealth" value="&{template:default} {{name=Stealth Check}} {{Target = [[@{stealth}]]}} {{Roll=[[1d100]]}}">Stealth</button>
|
||||
<input type="number" name="attr_stealth" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_thievery" value="&{template:default} {{name=Thievery Check}} {{Target = [[@{thievery}]]}} {{Roll=[[1d100]]}}">Thievery</button>
|
||||
<input type="number" name="attr_thievery" value="0" min="0" /><br>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p></p>
|
||||
|
||||
<!--End of alabetical skills-->
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Conditions</h3>
|
||||
|
||||
<p></p>
|
||||
|
||||
<div style='text-align:center'>
|
||||
<input type='checkbox' name='attr_afraid' value='1' checked><b> Afraid </b>
|
||||
<input type='checkbox' name='attr_confused' value="1" checked ><b> Confused</b>
|
||||
<input type='checkbox' name='attr_exhausted' value="1" checked ><b> Exhausted</b>
|
||||
<input type='checkbox' name='attr_heartbroken' value="1" checked ><b> Heartbroken</b>
|
||||
<input type='checkbox' name='attr_helpless' value="1" checked ><b> Helpless</b>
|
||||
<input type='checkbox' name='attr_sick' value="1" checked ><b> Sick</b>
|
||||
<input type='checkbox' name='attr_wounded' value="1" checked ><b> Wounded</b>
|
||||
</div>
|
||||
|
||||
<p></p>
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Melee / Ranged Attacks</h3>
|
||||
<div style="text-align: center; width:100%; font-size:0.8em"><b>*Input weapon name, attack skill value and damage including applicable damage bonus*</b></div>
|
||||
<p></p>
|
||||
|
||||
|
||||
<div class='2colrow'>
|
||||
|
||||
<div class='col'>
|
||||
<div style='text-align:left'; 'margin-left:10%'>
|
||||
<fieldset class='repeating_meleeSkills'>
|
||||
<button type='roll' value='&{template:default} {{name=@{meleeSkill} Attack}} {Target = [[@{meleescore}]]}} {{roll=[[1d100]]}}'/></button>
|
||||
<input type='text' name='attr_meleeSkill' style='width:125px' class='sheet-skillname'>
|
||||
<input type='number' name='attr_meleescore' value='0' min='0'>
|
||||
<input type='text' name='attr_melee_damage' style='width:125px'<placeholder='Add Weapon Dmg'><button type='roll' name='melee_damage' value="&{template:default} {{name=@{meleeSkill} Damage}} {{Damage =[[@{melee_damage}]]}}"></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
<div style='text-align:left'>
|
||||
<fieldset class='repeating_rangedSkills'>
|
||||
<button type='roll' value='&{template:default} {{name=@{rangedSkill} Attack}} {{Target = [[@{rangedScore}]]}} {{roll=[[1d100]]}}'></button>
|
||||
<input type='text' name="attr_rangedSkill" style='width:125px' class='sheet-skillname'>
|
||||
<input type='number' name='attr_rangedScore' value='0' min='0' >
|
||||
<input type='text' name='attr_ranged_damage' style='width:125px'<placeholder='Add Weapon Dmg'><button type='roll' name='ranged_damage' value="&{template:default} {{name=@{rangedSkill} Damage}} {{Damage =[[@{ranged_damage}]]}}"></button>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p></p>
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Equipment & Gear</h3>
|
||||
<div style="text-align: center; width:100%; font-size:0.8em"><b>*A character carrying total ENC greater than their STR is Overloaded (-20% on physical actions) and move at half speed.*</b></div>
|
||||
|
||||
<p></p>
|
||||
<fieldset class="repeating_inventory">
|
||||
<b>Item: </b><input type="text" name="attr_item_name" style='width:275px'; 'margin-left: 10%'/><b> Enc: </b><input type='text' name='attr_item_enc' style='width:50px'><b> Info: </b><input type="text" name="attr_item_info" style='width:400px' />
|
||||
</fieldset>
|
||||
|
||||
<p></p>
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Spells</h3>
|
||||
|
||||
<p></p>
|
||||
<fieldset class="repeating_spells">
|
||||
<b>Spell: </b><input type="text" name="attr_spell_name" style='width:100px'; 'margin-left: 10%'/><b> Range: </b><input type='text' name='attr_spell_range' style='width:25px'><b> Cost: </b><input type="text" name="attr_spell_cost" style='width:25px'><b> MP </b><b> Effect </b><input type='text' name='attr_spell_effect' style='width:300px'><b> Duration: </b><input type="text" name="attr_spell_duration" style='width:100px'>
|
||||
</fieldset>
|
||||
|
||||
<p></p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class='row'>
|
||||
<div style="width:100%">
|
||||
<img src="https://i.ibb.co/hYCmVNs/Cover.jpg"/>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<p/>
|
||||
</div>
|
||||
<!-- General character descriptions -->
|
||||
|
||||
<div class='2colrow'>
|
||||
|
||||
<div class= 'col'>
|
||||
<div style='text-align:right; margin-right:10%'>
|
||||
<b>Character Name:</b><input type='text' name='attr_Name' style='width:250px'><br>
|
||||
<b>Age:</b><input type='text' name='attr_Age' style='width:250px'><br>
|
||||
<b>Profession:</b><input type='text' name="attr_Profession" style='width:250px'><br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
<div style='text-align:right; margin-right:25%'>
|
||||
<b>Rank:</b><input type='number' value='0' min='0' name='attr_Rank' style='width:50px'><br>
|
||||
<b>Experience Points:</b><input type="number" value='0' min='0' name="attr_experience" style='width:50px'><br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p></p>
|
||||
|
||||
<b>Background: </b><input type='text' name='attr_character_background' style='width:100%'><br>
|
||||
</b><input type='text' name='attr_character_background2' style='width:100%'><br>
|
||||
|
||||
<p>
|
||||
<p/>
|
||||
<!-- Characteristics & Rolls -->
|
||||
|
||||
<h3 style="margin-bottom: 0px; text-align: center; color: #FFF; background-color: #8a3433;">Characteristics</h3>
|
||||
|
||||
<p>
|
||||
<p/>
|
||||
|
||||
<div class='2colrow'>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='margin-left: 150px'>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_STR'></button><b>STR: </b><input type='number' value='0' min='0' input name='attr_STR'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_CON'></button><b>CON:</b><input type='number' value='0' min='0' name='attr_CON'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_COU'></button><b>COU:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_INT'></button><b> INT: </b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_POW'></button><b>POW:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_DEX'></button><b> DEX:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
<button type='roll' value='/roll d20' name='roll_APP'></button><b> APP:</b><input type='number' value='0' min='0' name='attr_COU'><br>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align:left'>
|
||||
|
||||
<b>DAMAGE MODIFIER: </b><select name='attr_Dmg_Mod' style='width:80px'>
|
||||
<option value='0'>0</option>
|
||||
<option value='1'>-1d6</option>
|
||||
<option value='2'>-1d4</option>
|
||||
<option value='3'>+1d4</option>
|
||||
<option value='4'>+1d6</option>
|
||||
<option value='5'>+1d10</option>
|
||||
</select><br>
|
||||
|
||||
<b>HIT POINTS: </b><input type='number' value='0' min='0' name='attr_Hit_Points'><b> / </b><Input type='number' 'number' value='0' min='0' name='attr_Hit_Points_Max'><br>
|
||||
<b>-</b><br>
|
||||
<button class='characteristic-roll sheet-plain' name='roll_education' style='width: 100px' type='roll' value="&{template:default} {{name=Education Check}} {{Target = [[@{edu}]]}} {{Roll=[[1d100]]}}">Education</button><input type='number' value='0' min='0' name='attr_Edu'/><br>
|
||||
<b>MAGIC POINTS: </b><input type='number' value='0' name='attr_Magic_Pts'><br>
|
||||
<b>MOVEMENT (M): </b><input type='number' value='0' min='0' name='attr_Movement'><br>
|
||||
<b>STYLE POINTS: </b><input type='number' value='0' min="0" name="attr_Style"><b> / </b><Input type='number' value='0' min='0' name='attr_style_points_Max'><br>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ********************************************************************************************************************* -->
|
||||
<!-- Start of alpahbetical skills-->
|
||||
<p><p/>
|
||||
|
||||
<h3 style="margin-bottom: 0px; text-align: center; color: #FFF; background-color: #8a3433;">Skills</h3>
|
||||
<p><p/>
|
||||
|
||||
<div class='3colrow'>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align: center'>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_athletics' value='&{template:default} {{name=Athletics Check}} {{Target = [[@{athletics}]]}} {{Roll=[[1d100]]}}'>Athletics</button>
|
||||
<input type='number' name='attr_athletics' value='0' min='0' /><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_craft' value='&{template:default} {{name=Craft Check}} {{Target = [[@{craft}]]}} {{Roll=[[1d100]]}}'>Craft</button>
|
||||
<input type='number' name='attr_craft' value='0' min='0'><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_dodge' value='&{template:default} {{name=Dodge Check}} {{Target = [[@{dodge}]]}} {{Roll=[[1d100]]}}'>Dodge</button>
|
||||
<input type='number' name='attr_dodge' value='0' min='0'><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_endurance' value='&{template:default} {{name=Endurance Check}} {{Target = [[@{endurance}]]}} {{Roll=[[1d100]]}}'>Endurance</button>
|
||||
<input type='number' name='attr_endurance' value='0' min='0'><br>
|
||||
|
||||
<button type='roll' style='width:110px' name='roll_first_aid' value='&{template:default} {{name=Craft Check}} {{Target = [[@{craft}]]}} {{Roll=[[1d100]]}}'>First Aid</button>
|
||||
<input type='number' name='attr_first_aid' value='0' min='0'><br>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align: center'>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_lore" value="&{template:default} {{name=Lore Check}} {{Target = [[@{lore}]]}} {{Roll=[[1d100]]}}">Lore</button>
|
||||
<input type="number" name="attr_lore" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_melee" value="&{template:default} {{name=Melee Check}} {{Target = [[@{melee}]]}} {{Roll=[[1d100]]}}">Melee</button>
|
||||
<input type="number" name="attr_melee" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_perception" value="&{template:default} {{name=Perception Check}} {{Target = [[@{perception}]]}} {{Roll=[[1d100]]}}">Perception</button>
|
||||
<input type="number" name="attr_perception" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_persuasion" value="&{template:default} {{name=Persuasion Check}} {{Target = [[@{persuasion}]]}} {{Roll=[[1d100]]}}">Persuasion</button>
|
||||
<input type="number" name="attr_persuasion" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_ride" value="&{template:default} {{name=Ride Check}} {{Target = [[@{ride}]]}} {{Roll=[[1d100]]}}">Ride</button>
|
||||
<input type="number" name="attr_ride" value="0" min="0" /><br>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
|
||||
<div style='text-align: center'>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_shooting" value="&{template:default} {{name=Shooting Check}} {{Target = [[@{shooting}]]}} {{Roll=[[1d100]]}}">Shooting</button>
|
||||
<input type="number" name="attr_shooting" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_spellcasting" value="&{template:default} {{name=Thievery Check}} {{Target = [[@{spellcasting}]]}} {{Roll=[[1d100]]}}">Spellcasting</button>
|
||||
<input type="number" name="attr_spellcasting" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_stealth" value="&{template:default} {{name=Stealth Check}} {{Target = [[@{stealth}]]}} {{Roll=[[1d100]]}}">Stealth</button>
|
||||
<input type="number" name="attr_stealth" value="0" min="0" /><br>
|
||||
|
||||
<button type="roll" style="width:110px" name="roll_thievery" value="&{template:default} {{name=Thievery Check}} {{Target = [[@{thievery}]]}} {{Roll=[[1d100]]}}">Thievery</button>
|
||||
<input type="number" name="attr_thievery" value="0" min="0" /><br>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p></p>
|
||||
|
||||
<!--End of alabetical skills-->
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Conditions</h3>
|
||||
|
||||
<p></p>
|
||||
|
||||
<div style='text-align:center'>
|
||||
<input type='checkbox' name='attr_afraid' value='1' checked><b> Afraid </b>
|
||||
<input type='checkbox' name='attr_confused' value="1" checked ><b> Confused</b>
|
||||
<input type='checkbox' name='attr_exhausted' value="1" checked ><b> Exhausted</b>
|
||||
<input type='checkbox' name='attr_heartbroken' value="1" checked ><b> Heartbroken</b>
|
||||
<input type='checkbox' name='attr_helpless' value="1" checked ><b> Helpless</b>
|
||||
<input type='checkbox' name='attr_sick' value="1" checked ><b> Sick</b>
|
||||
<input type='checkbox' name='attr_wounded' value="1" checked ><b> Wounded</b>
|
||||
</div>
|
||||
|
||||
<p></p>
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Melee / Ranged Attacks</h3>
|
||||
<div style="text-align: center; width:100%; font-size:0.8em"><b>*Input weapon name, attack skill value and damage including applicable damage bonus*</b></div>
|
||||
<p></p>
|
||||
|
||||
|
||||
<div class='2colrow'>
|
||||
|
||||
<div class='col'>
|
||||
<div style='text-align:left'; 'margin-left:10%'>
|
||||
<fieldset class='repeating_meleeSkills'>
|
||||
<button type='roll' value='&{template:default} {{name=@{meleeSkill} Attack}} {Target = [[@{meleescore}]]}} {{roll=[[1d100]]}}'/></button>
|
||||
<input type='text' name='attr_meleeSkill' style='width:125px' class='sheet-skillname'>
|
||||
<input type='number' name='attr_meleescore' value='0' min='0'>
|
||||
<input type='text' name='attr_melee_damage' style='width:125px'<placeholder='Add Weapon Dmg'><button type='roll' name='melee_damage' value="&{template:default} {{name=@{meleeSkill} Damage}} {{Damage =[[@{melee_damage}]]}}"></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
<div style='text-align:left'>
|
||||
<fieldset class='repeating_rangedSkills'>
|
||||
<button type='roll' value='&{template:default} {{name=@{rangedSkill} Attack}} {{Target = [[@{rangedScore}]]}} {{roll=[[1d100]]}}'></button>
|
||||
<input type='text' name="attr_rangedSkill" style='width:125px' class='sheet-skillname'>
|
||||
<input type='number' name='attr_rangedScore' value='0' min='0' >
|
||||
<input type='text' name='attr_ranged_damage' style='width:125px'<placeholder='Add Weapon Dmg'><button type='roll' name='ranged_damage' value="&{template:default} {{name=@{rangedSkill} Damage}} {{Damage =[[@{ranged_damage}]]}}"></button>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p></p>
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Equipment & Gear</h3>
|
||||
<div style="text-align: center; width:100%; font-size:0.8em"><b>*A character carrying total ENC greater than their STR is Overloaded (-20% on physical actions) and move at half speed.*</b></div>
|
||||
|
||||
<p></p>
|
||||
<fieldset class="repeating_inventory">
|
||||
<b>Item: </b><input type="text" name="attr_item_name" style='width:275px'; 'margin-left: 10%'/><b> Enc: </b><input type='text' name='attr_item_enc' style='width:50px'><b> Info: </b><input type="text" name="attr_item_info" style='width:400px' />
|
||||
</fieldset>
|
||||
|
||||
<p></p>
|
||||
|
||||
<h3 style="text-align: center; color: #FFF; background-color: #8a3433;">Spells</h3>
|
||||
|
||||
<p></p>
|
||||
<fieldset class="repeating_spells">
|
||||
<b>Spell: </b><input type="text" name="attr_spell_name" style='width:100px'; 'margin-left: 10%'/><b> Range: </b><input type='text' name='attr_spell_range' style='width:25px'><b> Cost: </b><input type="text" name="attr_spell_cost" style='width:25px'><b> MP </b><b> Effect </b><input type='text' name='attr_spell_effect' style='width:300px'><b> Duration: </b><input type="text" name="attr_spell_duration" style='width:100px'>
|
||||
</fieldset>
|
||||
|
||||
<p></p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="613px" height="613px" viewBox="0 0 613 613" enable-background="new 0 0 613 613" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M224.756,355.947v89.758l76.982,44.879l76.981-44.879v-89.759l-76.982-44.878L224.756,355.947z M231.45,444.071 l-0.32-83.023l72.205-41.016L231.45,444.071z"/>
|
||||
<path d="M547.801,13.521l-36.65,0.002c-8.167,8.167-9.735,20.444-4.711,30.195l-32.575,25.367c-4.526-3.863-10.393-6.2-16.81-6.2 c-14.312,0-25.915,11.603-25.915,25.916c0,4.12,0.966,8.012,2.676,11.47l-32.053,24.96c-4.682-4.637-11.122-7.503-18.233-7.503 c-14.312,0-25.915,11.604-25.915,25.916c0,4.808,1.314,9.307,3.596,13.166l-30.795,23.98c-6.6-21.004-44.959-23.772-56.447-5.395 l-30.138-22.566c1.083-2.855,1.681-5.949,1.681-9.184c0-14.312-11.603-25.916-25.915-25.916c-5.872,0-11.287,1.956-15.633,5.249 L170.37,97.821c1.044-2.81,1.616-5.848,1.616-9.021c0-14.313-11.603-25.916-25.915-25.916c-5.809,0-11.172,1.912-15.494,5.141 l-35.88-26.866c3.56-9.267,1.613-20.169-5.856-27.638l-36.65,0.002C42.078,23.636,42.078,40.055,52.193,50.17 c9.554,9.554,24.728,10.079,34.906,1.585l35.323,26.449c-1.452,3.236-2.266,6.819-2.266,10.595 c0,14.312,11.603,25.914,25.915,25.914c6.421,0,12.292-2.34,16.819-6.208l32.986,24.699c-1.407,3.194-2.195,6.723-2.195,10.437 c0,14.312,11.603,25.914,25.915,25.914c6.359,0,12.179-2.294,16.688-6.094l34.434,25.783v50.445l0.969-0.011l-124.17,71.882 l-0.002,178.445l154.122,89.222l154.123-89.222l0.001-178.446l-125.319-72.547l0.95-0.011v-42.454l39.148-30.485 c3.82,2.217,8.254,3.493,12.989,3.493c14.312,0,25.915-11.602,25.915-25.914c0-2.463-0.351-4.843-0.993-7.1l33.905-26.402 c4.177,2.882,9.239,4.574,14.698,4.574c14.312,0,25.915-11.602,25.915-25.914c0-3.174-0.573-6.214-1.618-9.025l33.807-26.326 c10.063,6.68,23.774,5.588,32.642-3.279C557.916,40.055,557.916,23.636,547.801,13.521z M399.098,457.735l-97.537,56.811 l-97.536-56.811l0.001-113.623l97.537-56.811l97.536,56.811L399.098,457.735z"/>
|
||||
</g>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="613px" height="613px" viewBox="0 0 613 613" enable-background="new 0 0 613 613" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M224.756,355.947v89.758l76.982,44.879l76.981-44.879v-89.759l-76.982-44.878L224.756,355.947z M231.45,444.071 l-0.32-83.023l72.205-41.016L231.45,444.071z"/>
|
||||
<path d="M547.801,13.521l-36.65,0.002c-8.167,8.167-9.735,20.444-4.711,30.195l-32.575,25.367c-4.526-3.863-10.393-6.2-16.81-6.2 c-14.312,0-25.915,11.603-25.915,25.916c0,4.12,0.966,8.012,2.676,11.47l-32.053,24.96c-4.682-4.637-11.122-7.503-18.233-7.503 c-14.312,0-25.915,11.604-25.915,25.916c0,4.808,1.314,9.307,3.596,13.166l-30.795,23.98c-6.6-21.004-44.959-23.772-56.447-5.395 l-30.138-22.566c1.083-2.855,1.681-5.949,1.681-9.184c0-14.312-11.603-25.916-25.915-25.916c-5.872,0-11.287,1.956-15.633,5.249 L170.37,97.821c1.044-2.81,1.616-5.848,1.616-9.021c0-14.313-11.603-25.916-25.915-25.916c-5.809,0-11.172,1.912-15.494,5.141 l-35.88-26.866c3.56-9.267,1.613-20.169-5.856-27.638l-36.65,0.002C42.078,23.636,42.078,40.055,52.193,50.17 c9.554,9.554,24.728,10.079,34.906,1.585l35.323,26.449c-1.452,3.236-2.266,6.819-2.266,10.595 c0,14.312,11.603,25.914,25.915,25.914c6.421,0,12.292-2.34,16.819-6.208l32.986,24.699c-1.407,3.194-2.195,6.723-2.195,10.437 c0,14.312,11.603,25.914,25.915,25.914c6.359,0,12.179-2.294,16.688-6.094l34.434,25.783v50.445l0.969-0.011l-124.17,71.882 l-0.002,178.445l154.122,89.222l154.123-89.222l0.001-178.446l-125.319-72.547l0.95-0.011v-42.454l39.148-30.485 c3.82,2.217,8.254,3.493,12.989,3.493c14.312,0,25.915-11.602,25.915-25.914c0-2.463-0.351-4.843-0.993-7.1l33.905-26.402 c4.177,2.882,9.239,4.574,14.698,4.574c14.312,0,25.915-11.602,25.915-25.914c0-3.174-0.573-6.214-1.618-9.025l33.807-26.326 c10.063,6.68,23.774,5.588,32.642-3.279C557.916,40.055,557.916,23.636,547.801,13.521z M399.098,457.735l-97.537,56.811 l-97.536-56.811l0.001-113.623l97.537-56.811l97.536,56.811L399.098,457.735z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |