espergen-character-sheets
Version:
Esper Genesis 5th Edition character sheets created in ReactJS.
1,544 lines (1,483 loc) • 108 kB
JavaScript
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var React = _interopDefault(require('react'));
require('bootstrap/dist/css/bootstrap.css');
var EsperGenCharacter = function EsperGenCharacter() {};
function _inheritsLoose(subClass, superClass) {
subClass.prototype = Object.create(superClass.prototype);
subClass.prototype.constructor = subClass;
subClass.__proto__ = superClass;
}
function AttackTable(props) {
function updateValue(index, field, v) {
var value = getValue().slice();
value[index][field] = v;
props.onChange(props.name, value);
}
function getValue() {
var value = props.value;
if (!value) {
value = [];
}
while (value.length < props.rows) {
value.push({});
}
return value;
}
var classes = 'espergen-table';
if (props.classes) {
classes += ' ' + props.classes;
}
return React.createElement("table", {
className: classes
}, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", null, "Weapon"), React.createElement("th", {
style: {
width: '35px'
}
}, "Prof."), React.createElement("th", {
style: {
width: '70px'
}
}, "Range"), React.createElement("th", {
style: {
width: '40px'
}
}, "To Hit"), React.createElement("th", {
style: {
width: '70px'
}
}, "Damage"), React.createElement("th", {
style: {
width: '70px'
}
}, "Dmg. Type"))), React.createElement("tbody", null, getValue().map(function (v, index) {
return [React.createElement("tr", {
key: 'espergen-table-row-' + props.name + index
}, React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.name ? v.name : '',
onChange: function onChange(e) {
return updateValue(index, 'name', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.prof ? v.prof : '',
onChange: function onChange(e) {
return updateValue(index, 'prof', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.range ? v.range : '',
onChange: function onChange(e) {
return updateValue(index, 'range', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.toHit ? v.toHit : '',
onChange: function onChange(e) {
return updateValue(index, 'toHit', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.damage ? v.damage : '',
onChange: function onChange(e) {
return updateValue(index, 'damage', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.damageType ? v.damageType : '',
onChange: function onChange(e) {
return updateValue(index, 'damageType', e.target.value);
}
}))), React.createElement("tr", {
key: 'espergen-table-row2-' + props.name + index
}, React.createElement("td", {
colSpan: 6
}, React.createElement("label", {
className: 'mb-0 mr-2'
}, "Special"), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 50px'
},
value: v.special ? v.special : '',
onChange: function onChange(e) {
return updateValue(index, 'special', e.target.value);
}
})))];
})));
}
function DeathSave(props) {
var classes = 'espergen-deathsave';
if (props.classes) {
classes += ' ' + props.classes;
}
function renderHex(value, number, type) {
var cn = type && type > 0 ? 'deathsave' : 'deathsave fake';
if (type === 2) {
cn += ' failure';
}
if (value && number && value >= number) {
cn += ' active';
}
if (number === 2) {
cn += ' even';
}
var text = '';
var click = null;
if (type && type > 0) {
text = number === 1 ? 'I' : number === 2 ? 'II' : number === 3 ? 'III' : '';
click = type === 1 ? function () {
return props.onChange(props.name + 'Successes', value === number ? null : number);
} : function () {
return props.onChange(props.name + 'Failures', value === number ? null : number);
};
}
return React.createElement("div", {
className: cn,
onClick: click
}, React.createElement("div", {
className: 'left'
}), React.createElement("div", {
className: 'middle'
}, text), React.createElement("div", {
className: 'right'
}));
}
return React.createElement("div", {
className: classes
}, React.createElement("div", {
className: 'deathsave-row'
}, renderHex(null, 1, 0), renderHex(props.valueSuccess, 2, 1), renderHex(null, 3, 0)), React.createElement("div", {
className: 'deathsave-row'
}, renderHex(props.valueSuccess, 1, 1), renderHex(null, 2, 0), renderHex(props.valueSuccess, 3, 1), React.createElement("label", {
className: 'ml-3 mb-0',
style: {
paddingTop: '5px'
}
}, "Survive")), React.createElement("div", {
className: 'deathsave-row'
}, renderHex(props.valueFailure, 1, 2), renderHex(props.valueFailure, 2, 2), renderHex(props.valueFailure, 3, 2), React.createElement("label", {
className: 'ml-3 mb-0',
style: {
paddingTop: '5px'
}
}, "Perish")));
}
function FeatureTable(props) {
function updateValue(index, field, v) {
var value = getValue().slice();
value[index][field] = v;
props.onChange(props.name, value);
}
function getValue() {
var value = props.value;
if (!value) {
value = [];
}
while (value.length < props.rows) {
value.push({});
}
return value;
}
var classes = 'espergen-table';
if (props.classes) {
classes += ' ' + props.classes;
}
return React.createElement("table", {
className: classes
}, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", null, "Feature"), React.createElement("th", {
style: {
width: '70px'
}
}, "Max Use"), React.createElement("th", {
style: {
width: '70px'
}
}, "Recovery"), React.createElement("th", {
style: {
width: '50px'
}
}, "Used"))), React.createElement("tbody", null, getValue().map(function (v, index) {
return React.createElement("tr", {
key: 'espergen-table-row-' + props.name + index
}, React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.name ? v.name : '',
onChange: function onChange(e) {
return updateValue(index, 'name', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.maxUse ? v.maxUse : '',
onChange: function onChange(e) {
return updateValue(index, 'maxUse', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.recovery ? v.recovery : '',
onChange: function onChange(e) {
return updateValue(index, 'recovery', e.target.value);
}
})), React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.used ? v.used : '',
onChange: function onChange(e) {
return updateValue(index, 'used', e.target.value);
}
})));
})));
}
function ResistancesTable(props) {
function updateValue(index, field, v) {
var value = getValue().slice();
value[index][field] = v;
props.onChange(props.name, value);
}
function getValue() {
var value = props.value;
if (!value) {
value = [];
}
while (value.length < props.rows) {
value.push({});
}
return value;
}
var classes = 'espergen-table';
if (props.classes) {
classes += ' ' + props.classes;
}
return React.createElement("table", {
className: classes
}, React.createElement("tbody", null, getValue().map(function (v, index) {
return React.createElement("tr", {
key: 'espergen-table-row-' + props.name + index
}, React.createElement("td", null, React.createElement("input", {
type: 'text',
value: v.name ? v.name : '',
onChange: function onChange(e) {
return updateValue(index, 'name', e.target.value);
}
})));
})));
}
function Skill(props) {
var classes = 'espergen-skill';
if (props.classes) {
classes += ' ' + props.classes;
}
return React.createElement("div", {
className: classes
}, React.createElement("input", {
type: 'text',
value: props.value ? props.value : '',
onChange: function onChange(e) {
return props.onChange(props.name, e.target.value);
}
}), React.createElement("label", null, props.label), props.hint ? React.createElement("span", {
className: 'espergen-skill-hint'
}, props.hint) : null, React.createElement("div", {
className: props.checked ? 'espergen-skill-circle active' : 'espergen-skill-circle',
onClick: function onClick() {
return props.onChange(props.name + 'Checked', !props.checked);
}
}));
}
function StatBox(props) {
var classes = 'espergen-statbox';
if (props.classes) {
classes += ' ' + props.classes;
}
var modifier = '';
if (props.value && !isNaN(Number(props.value))) {
var modifierNum = Math.floor((Number(props.value) - 10) / 2);
if (modifierNum > 0) {
modifier = '+' + modifierNum;
} else {
modifier = modifierNum.toString();
}
}
return React.createElement("div", {
className: classes
}, React.createElement("div", {
className: 'espergen-statbox-value'
}, React.createElement("input", {
type: 'text',
value: props.value ? props.value : '',
onChange: function onChange(e) {
return props.onChange(props.name, e.target.value);
}
})), React.createElement("div", null, React.createElement("label", {
className: 'abbrev'
}, props.abbreviation), React.createElement("hr", null), React.createElement("label", null, props.label)), React.createElement("div", {
className: 'espergen-statbox-modifier'
}, modifier), React.createElement("div", {
className: 'espergen-statbox-value'
}, React.createElement("input", {
type: 'text',
value: props.valueSave ? props.valueSave : '',
onChange: function onChange(e) {
return props.onChange(props.name + 'Save', e.target.value);
}
})));
}
var initialState = {
character: {}
};
var EsperGenCharacterStatsSheet = /*#__PURE__*/function (_React$Component) {
_inheritsLoose(EsperGenCharacterStatsSheet, _React$Component);
function EsperGenCharacterStatsSheet(props) {
var _this;
_this = _React$Component.call(this, props) || this;
if (props.defaultCharacter) {
initialState.character = props.defaultCharacter;
}
_this.state = initialState;
return _this;
}
var _proto = EsperGenCharacterStatsSheet.prototype;
_proto.updateCharacter = function updateCharacter(name, value) {
var oldCharacter = this.getCharacter();
var newCharacter = {};
Object.assign(newCharacter, oldCharacter);
newCharacter[name] = value;
if (!this.props.character) {
this.setState({
character: newCharacter
});
}
if (typeof this.props.onCharacterChanged === 'function') {
this.props.onCharacterChanged(newCharacter, name, value);
}
};
_proto.getCharacter = function getCharacter() {
var character = this.state.character;
if (this.props.character) {
character = this.props.character;
}
return character;
};
_proto.render = function render() {
var _this2 = this;
var character = this.getCharacter();
return React.createElement("div", {
className: 'espergen-character-sheet container-xl mt-5 mb-5'
}, React.createElement("div", null, React.createElement("div", {
className: 'row mb-4'
}, React.createElement("div", {
className: 'col-md-5 order-md-2'
}, React.createElement("div", {
className: 'espergen-page-title text-md-right'
}, "Esper Genesis"), React.createElement("div", {
className: 'espergen-page-subtitle text-md-right'
}, "Heroic Sci-Fi Roleplaying"), React.createElement("div", {
className: 'row mt-2'
}, React.createElement("div", {
className: 'col-md-6'
}, React.createElement("label", {
style: {
width: '100px'
}
}, "Experience Points: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 100px)'
},
className: 'espergen-linput',
value: character.xp ? character.xp : '',
onChange: function onChange(e) {
return _this2.updateCharacter('xp', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-6'
}, React.createElement("label", {
style: {
width: '70px'
}
}, "Next Level: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 70px)'
},
className: 'espergen-linput',
value: character.nextXp ? character.nextXp : '',
onChange: function onChange(e) {
return _this2.updateCharacter('nextXp', e.target.value);
}
}))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-12'
}, React.createElement("label", {
style: {
width: '60px'
}
}, "Campaign: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 60px)'
},
className: 'espergen-linput',
value: character.campaign ? character.campaign : '',
onChange: function onChange(e) {
return _this2.updateCharacter('campaign', e.target.value);
}
}))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-12'
}, React.createElement("label", {
style: {
width: '170px'
}
}, "Crucible Corps Serial Number:", ' '), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 170px)'
},
className: 'espergen-linput',
value: character.corpsSerialNumber ? character.corpsSerialNumber : '',
onChange: function onChange(e) {
return _this2.updateCharacter('corpsSerialNumber', e.target.value);
}
})))), React.createElement("div", {
className: 'col-md-7 order-md-1'
}, React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-3 text-center mt-3 mt-md-0'
}, React.createElement("div", {
className: 'espergen-circle'
}, React.createElement("div", {
className: 'espergen-circle-inner'
}, React.createElement("input", {
type: 'text',
value: character.level ? character.level : '',
onChange: function onChange(e) {
return _this2.updateCharacter('level', e.target.value);
}
}))), React.createElement("div", {
className: 'upper1',
style: {
fontSize: '20px'
}
}, React.createElement("span", null, "L"), "evel")), React.createElement("div", {
className: 'col-md-9'
}, React.createElement("div", {
className: 'row mt-2'
}, React.createElement("div", {
className: 'col-md-7 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '40px'
}
}, "Name: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 40px)'
},
className: 'espergen-linput',
value: character.name ? character.name : '',
onChange: function onChange(e) {
return _this2.updateCharacter('name', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-5 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '45px'
}
}, "Player: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 45px)'
},
className: 'espergen-linput',
value: character.playerName ? character.playerName : '',
onChange: function onChange(e) {
return _this2.updateCharacter('playerName', e.target.value);
}
}))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-12 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '40px'
}
}, "Class: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 40px)'
},
className: 'espergen-linput',
value: character["class"] ? character["class"] : '',
onChange: function onChange(e) {
return _this2.updateCharacter('class', e.target.value);
}
}))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-6 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '40px'
}
}, "Race: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 40px)'
},
className: 'espergen-linput',
value: character.race ? character.race : '',
onChange: function onChange(e) {
return _this2.updateCharacter('race', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-6 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '70px'
}
}, "Background: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 70px)'
},
className: 'espergen-linput',
value: character.background ? character.background : '',
onChange: function onChange(e) {
return _this2.updateCharacter('background', e.target.value);
}
}))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-3 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '45px'
}
}, "Gender: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 45px)'
},
className: 'espergen-linput',
value: character.gender ? character.gender : '',
onChange: function onChange(e) {
return _this2.updateCharacter('gender', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-3 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '30px'
}
}, "Size: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 30px)'
},
className: 'espergen-linput',
value: character.size ? character.size : '',
onChange: function onChange(e) {
return _this2.updateCharacter('size', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-3 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '45px'
}
}, "Height: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 45px)'
},
className: 'espergen-linput',
value: character.height ? character.height : '',
onChange: function onChange(e) {
return _this2.updateCharacter('height', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-3 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '45px'
}
}, "Weight: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 45px)'
},
className: 'espergen-linput',
value: character.weight ? character.weight : '',
onChange: function onChange(e) {
return _this2.updateCharacter('weight', e.target.value);
}
}))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-2 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '30px'
}
}, "Age: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 30px)'
},
className: 'espergen-linput',
value: character.age ? character.age : '',
onChange: function onChange(e) {
return _this2.updateCharacter('age', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-3 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '30px'
}
}, "Hair: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 30px)'
},
className: 'espergen-linput',
value: character.hair ? character.hair : '',
onChange: function onChange(e) {
return _this2.updateCharacter('hair', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-3 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '35px'
}
}, "Eyes: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 35px)'
},
className: 'espergen-linput',
value: character.eyes ? character.eyes : '',
onChange: function onChange(e) {
return _this2.updateCharacter('eyes', e.target.value);
}
})), React.createElement("div", {
className: 'col-md-4 pl-md-1 pr-md-1'
}, React.createElement("label", {
style: {
width: '60px'
}
}, "Alignment: "), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 60px)'
},
className: 'espergen-linput',
value: character.alignment ? character.alignment : '',
onChange: function onChange(e) {
return _this2.updateCharacter('alignment', e.target.value);
}
}))))))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-4'
}, React.createElement("div", {
className: 'upper1',
style: {
fontSize: '20px'
}
}, React.createElement("span", null, "A"), "bilities"), React.createElement("label", {
style: {
margin: '0 85px 5px 8px'
}
}, "Score"), React.createElement("label", {
style: {
margin: '0 20px 5px'
}
}, "Modifier"), React.createElement("label", {
style: {
margin: '0 30px 5px'
}
}, "Saving", React.createElement("br", null), "Throw"), React.createElement(StatBox, {
abbreviation: 'STR',
label: 'Strength',
name: 'str',
value: character.str,
valueSave: character.strSave,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(StatBox, {
abbreviation: 'DEX',
label: 'Dexterity',
name: 'dex',
value: character.dex,
valueSave: character.dexSave,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(StatBox, {
abbreviation: 'CON',
label: 'Constitution',
name: 'con',
value: character.con,
valueSave: character.conSave,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(StatBox, {
abbreviation: 'INT',
label: 'intelligence',
name: 'int',
value: character["int"],
valueSave: character.intSave,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(StatBox, {
abbreviation: 'WIS',
label: 'Wisdom',
name: 'wis',
value: character.wis,
valueSave: character.wisSave,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(StatBox, {
abbreviation: 'CHA',
label: 'Charisma',
name: 'cha',
value: character.cha,
valueSave: character.chaSave,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement("div", {
className: 'upper1 mt-4',
style: {
fontSize: '16px'
}
}, React.createElement("span", null, "S"), "enses"), React.createElement("div", null, React.createElement("label", {
className: 'upper1',
style: {
fontSize: '16px',
fontWeight: 'normal'
}
}, React.createElement("span", null, "P"), "assive ", React.createElement("span", null, "P"), "erception"), React.createElement("input", {
type: 'text',
style: {
width: '40px',
height: '40px',
border: '2px solid black',
margin: '0 10px 0 20px',
fontSize: '16px',
textAlign: 'center'
},
className: 'espergen-linput',
value: character.passivePerception ? character.passivePerception : '',
onChange: function onChange(e) {
return _this2.updateCharacter('passivePerception', e.target.value);
}
}), React.createElement("label", {
style: {
textAlign: 'center',
verticalAlign: 'middle'
}
}, "= 10 +", React.createElement("br", null), "Perception", React.createElement("br", null), "Skill")), React.createElement("div", null, React.createElement("textarea", {
className: 'espergen-linedtextarea',
value: character.senses ? character.senses : '',
onChange: function onChange(e) {
return _this2.updateCharacter('senses', e.target.value);
},
rows: 2
}))), React.createElement("div", {
className: 'col-md-4 pr-md-1 pl-md-1'
}, React.createElement("div", {
className: 'row mt-5'
}, React.createElement("div", {
className: 'col-md-7 pr-md-1 pl-md-1 text-center'
}, React.createElement("div", null, React.createElement("div", {
className: 'upper1',
style: {
fontSize: '16px',
textAlign: 'center'
}
}, React.createElement("span", null, "B"), "urst ", React.createElement("span", null, "F"), "ire"), React.createElement("div", {
className: 'mt-2'
}, React.createElement("label", {
className: 'espergen-inline-label'
}, "Burst", React.createElement("br", null), "DC"), React.createElement("div", {
className: 'espergen-round-input'
}, React.createElement("input", {
type: 'text',
value: character.burstDc ? character.burstDc : '',
onChange: function onChange(e) {
return _this2.updateCharacter('burstDc', e.target.value);
}
})), React.createElement("label", {
className: 'espergen-inline-label'
}, "Burst Save", React.createElement("br", null), "Bonus"), React.createElement("div", {
className: 'espergen-round-input'
}, React.createElement("input", {
type: 'text',
value: character.burstSave ? character.burstSave : '',
onChange: function onChange(e) {
return _this2.updateCharacter('burstSave', e.target.value);
}
})))), React.createElement("label", {
className: 'text-center',
style: {
fontSize: '9px'
}
}, "(DC = 8 + Proficiency Score + Dex Bonus)"), React.createElement("div", null, React.createElement("div", {
className: 'upper1 mt-3',
style: {
fontSize: '16px',
textAlign: 'center'
}
}, React.createElement("span", null, "A"), "bility ", React.createElement("span", null, "S"), "ave ", React.createElement("span", null, "DC")), React.createElement("div", {
className: 'mt-2'
}, React.createElement("div", {
className: 'espergen-inline-label'
}, React.createElement("label", null, "8 + "), React.createElement("input", {
type: 'text',
style: {
width: '24px',
margin: '0 5px 0 5px',
textAlign: 'center'
},
className: 'espergen-linput',
value: character.abilitySave1Mod ? character.abilitySave1Mod : '',
onChange: function onChange(e) {
return _this2.updateCharacter('abilitySave1Mod', e.target.value);
}
}), React.createElement("br", null), React.createElement("label", {
style: {
fontSize: '9px'
}
}, "+ Prof", React.createElement("br", null), "Bonus")), React.createElement("div", {
className: 'espergen-round-input',
style: {
marginBottom: '15px'
}
}, React.createElement("input", {
type: 'text',
value: character.abilitySave1Dc ? character.abilitySave1Dc : '',
onChange: function onChange(e) {
return _this2.updateCharacter('abilitySave1Dc', e.target.value);
}
})), React.createElement("div", {
className: 'espergen-inline-label'
}, React.createElement("label", null, "8 + "), React.createElement("input", {
type: 'text',
style: {
width: '24px',
margin: '0 5px 0 5px',
textAlign: 'center'
},
className: 'espergen-linput',
value: character.abilitySave2Mod ? character.abilitySave2Mod : '',
onChange: function onChange(e) {
return _this2.updateCharacter('abilitySave2Mod', e.target.value);
}
}), React.createElement("br", null), React.createElement("label", {
style: {
fontSize: '9px'
}
}, "+ Prof", React.createElement("br", null), "Bonus")), React.createElement("div", {
className: 'espergen-round-input',
style: {
marginBottom: '15px'
}
}, React.createElement("input", {
type: 'text',
value: character.abilitySave2Dc ? character.abilitySave2Dc : '',
onChange: function onChange(e) {
return _this2.updateCharacter('abilitySave2Dc', e.target.value);
}
}))))), React.createElement("div", {
className: 'col-md-5'
}, React.createElement("div", {
className: 'espergen-circle solid'
}, React.createElement("div", {
className: 'espergen-circle-inner'
}, React.createElement("input", {
type: 'text',
style: {
padding: '13px'
},
value: character.proficiencyBonus ? character.proficiencyBonus : '',
onChange: function onChange(e) {
return _this2.updateCharacter('proficiencyBonus', e.target.value);
}
}))), React.createElement("div", {
className: 'upper1',
style: {
fontSize: '16px',
textAlign: 'center',
lineHeight: '24px',
marginTop: '10px'
}
}, React.createElement("span", null, "P"), "roficiency", React.createElement("br", null), React.createElement("span", null, "B"), "onus"), React.createElement("hr", {
className: 'espergen-seperator'
}), React.createElement("div", null, React.createElement("input", {
type: 'text',
style: {
width: '24px',
height: '24px',
border: '1px solid black',
margin: '0 10px 0 10px',
fontSize: '12px',
textAlign: 'center'
},
className: 'espergen-linput',
value: character.inspiration ? character.inspiration : '',
onChange: function onChange(e) {
return _this2.updateCharacter('inspiration', e.target.value);
}
}), React.createElement("label", {
className: 'upper1',
style: {
fontSize: '12px',
fontWeight: 'normal',
margin: '0',
verticalAlign: 'bottom'
}
}, React.createElement("span", null, "I"), "inspiration")), React.createElement("hr", {
className: 'espergen-seperator'
}))), React.createElement("label", {
className: 'text-center w-100 mt-2 mb-0'
}, React.createElement("strong", null, "Saving Throw Advantages/Disadvantages")), React.createElement("textarea", {
className: 'espergen-linedtextarea',
value: character.savingThrowAdvs ? character.savingThrowAdvs : '',
onChange: function onChange(e) {
return _this2.updateCharacter('savingThrowAdvs', e.target.value);
},
rows: 2
}), React.createElement("div", {
className: 'upper1 mt-2 mb-1',
style: {
fontSize: '16px'
}
}, React.createElement("span", null, "S"), "pecial ", React.createElement("span", null, "F"), "eatures"), React.createElement(FeatureTable, {
rows: 6,
name: 'specialFeatures',
value: character.specialFeatures,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
})), React.createElement("div", {
className: 'col-md-4'
}, React.createElement("div", {
className: 'upper1 mb-2',
style: {
fontSize: '20px'
}
}, React.createElement("span", null, "S"), "kills"), React.createElement("label", {
style: {
margin: '0 0px 5px 8px'
}
}, "Bonus"), React.createElement("label", {
style: {
margin: '0 0px 5px 18px'
}
}, "Skill Name"), React.createElement("label", {
style: {
margin: '0 5px 5px 0px',
"float": 'right'
}
}, "Proficient"), React.createElement("div", {
className: 'espergen-skilllist'
}, React.createElement(Skill, {
label: 'Acrobatics',
hint: '(Dex)',
name: 'skillAcrobatics',
value: character.skillAcrobatics,
checked: character.skillAcrobaticsChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Astrophysics',
hint: '(Int)',
name: 'skillAstrophysics',
value: character.skillAstrophysics,
checked: character.skillAstrophysicsChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Athletics',
hint: '(Str)',
name: 'skillAthletics',
value: character.skillAthletics,
checked: character.skillAthleticsChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Computers',
hint: '(Int)',
name: 'skillComputers',
value: character.skillComputers,
checked: character.skillComputersChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Deception',
hint: '(Cha)',
name: 'skillDeception',
value: character.skillDeception,
checked: character.skillDeceptionChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Insight',
hint: '(Wis)',
name: 'skillInsight',
value: character.skillInsight,
checked: character.skillInsightChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Intimidation',
hint: '(Cha)',
name: 'skillIntimidation',
value: character.skillIntimidation,
checked: character.skillIntimidationChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Investigation',
hint: '(Int)',
name: 'skillInvestigation',
value: character.skillInvestigation,
checked: character.skillInvestigationChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Lore',
hint: '(Int)',
name: 'skillLore',
value: character.skillLore,
checked: character.skillLoreChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Mechanics',
hint: '(Wis)',
name: 'skillMechanics',
value: character.skillMechanics,
checked: character.skillMechanicsChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Medicine',
hint: '(Wis)',
name: 'skillMedicine',
value: character.skillMedicine,
checked: character.skillMedicineChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Perception',
hint: '(Wis)',
name: 'skillPerception',
value: character.skillPerception,
checked: character.skillPerceptionChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Performance',
hint: '(Cha)',
name: 'skillPerformance',
value: character.skillPerformance,
checked: character.skillPerformanceChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Persuasion',
hint: '(Cha)',
name: 'skillPersuasion',
value: character.skillPersuasion,
checked: character.skillPersuasionChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Slight of Hand',
hint: '(Dex)',
name: 'skillSlightOfHand',
value: character.skillSlightOfHand,
checked: character.skillSlightOfHandChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Stealth',
hint: '(Dex)',
name: 'skillStealth',
value: character.skillStealth,
checked: character.skillStealthChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Survival',
hint: '(Wis)',
name: 'skillSurvival',
value: character.skillSurvival,
checked: character.skillSurvivalChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
}), React.createElement(Skill, {
label: 'Xenobiology',
hint: '(Int)',
name: 'skillXenobiology',
value: character.skillXenobiology,
checked: character.skillXenobiologyChecked,
onChange: function onChange(name, value) {
_this2.updateCharacter(name, value);
}
})))), React.createElement("hr", {
className: 'espergen-page-break mt-2'
}), React.createElement("hr", {
className: 'espergen-page-break mb-2'
}), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-6'
}, React.createElement("div", {
className: 'mb-2'
}, React.createElement("div", {
className: 'upper1',
style: {
fontSize: '20px',
display: 'inline-block',
verticalAlign: 'middle',
marginBottom: '5px'
}
}, React.createElement("span", null, "C"), "ombat"), React.createElement("div", {
className: 'espergen-round-input large ml-4 mr-2'
}, React.createElement("input", {
type: 'text',
value: character.init ? character.init : '',
onChange: function onChange(e) {
return _this2.updateCharacter('init', e.target.value);
}
})), React.createElement("div", {
className: 'upper1 mr-2',
style: {
fontSize: '16px',
fontWeight: 'normal',
display: 'inline-block',
verticalAlign: 'middle'
}
}, React.createElement("span", null, "I"), "nitiative"), React.createElement("div", {
className: 'ml-3 mr-0',
style: {
display: 'inline-block'
}
}, React.createElement("label", {
className: 'mb-0 text-center w-100',
style: {
fontSize: '8px'
}
}, "Dex"), React.createElement("br", null), React.createElement("input", {
type: 'text',
className: 'espergen-binput',
value: character.initDex ? character.initDex : '',
onChange: function onChange(e) {
return _this2.updateCharacter('initDex', e.target.value);
}
})), "+", React.createElement("div", {
className: 'ml-0 mr-2',
style: {
display: 'inline-block'
}
}, React.createElement("label", {
className: 'mb-0 text-center w-100',
style: {
fontSize: '8px'
}
}, "Misc"), React.createElement("br", null), React.createElement("input", {
type: 'text',
className: 'espergen-binput',
value: character.initMisc ? character.initMisc : '',
onChange: function onChange(e) {
return _this2.updateCharacter('initMisc', e.target.value);
}
})), React.createElement("div", {
style: {
display: 'inline-block',
width: '1px',
verticalAlign: 'middle',
height: '40px',
backgroundColor: 'black'
}
}), React.createElement("div", {
className: 'ml-2 mr-2',
style: {
display: 'inline-block'
}
}, React.createElement("label", {
className: 'mb-0 text-center w-100',
style: {
fontSize: '8px'
}
}, "Base Speed"), React.createElement("br", null), React.createElement("input", {
type: 'text',
style: {
height: '36px',
width: '50px'
},
className: 'espergen-binput',
value: character.speed ? character.speed : '',
onChange: function onChange(e) {
return _this2.updateCharacter('speed', e.target.value);
}
})), React.createElement("div", {
className: 'ml-2',
style: {
display: 'inline-block'
}
}, React.createElement("label", {
className: 'mb-0 text-center w-100',
style: {
fontSize: '8px'
}
}, "Encumbered"), React.createElement("br", null), React.createElement("input", {
type: 'text',
style: {
height: '36px',
width: '50px'
},
className: 'espergen-binput',
value: character.encumbered ? character.encumbered : '',
onChange: function onChange(e) {
return _this2.updateCharacter('encumbered', e.target.value);
}
}))), React.createElement("div", {
className: 'row'
}, React.createElement("div", {
className: 'col-md-4 pd-md-0'
}, React.createElement("div", {
className: 'upper1 mb-3',
style: {
fontSize: '16px',
display: 'inline-block',
verticalAlign: 'middle'
}
}, React.createElement("span", null, "A"), "rmour ", React.createElement("span", null, "C"), "lass"), React.createElement("div", {
className: 'espergen-hex'
}, React.createElement("div", {
className: 'espergen-circle-inner'
}, React.createElement("input", {
type: 'text',
value: character.ac ? character.ac : '',
onChange: function onChange(e) {
return _this2.updateCharacter('ac', e.target.value);
}
})))), React.createElement("div", {
className: 'col-md-8 pl-md-0 mt-5 mt-md-0'
}, React.createElement("div", {
className: 'mt-2'
}, React.createElement("input", {
type: 'text',
className: 'espergen-binput',
value: character.acBonus ? character.acBonus : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acBonus', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 text-center',
style: {
width: '60px',
fontSize: '8px',
verticalAlign: 'middle'
}
}, "Armour", React.createElement("br", null), "Bonus"), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 84px'
},
className: 'espergen-binput',
value: character.acBonusText ? character.acBonusText : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acBonusText', e.target.value);
}
})), React.createElement("span", {
className: 'ml-2',
style: {}
}, "+"), React.createElement("div", null, React.createElement("input", {
type: 'text',
className: 'espergen-binput',
value: character.acShieldBonus ? character.acShieldBonus : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acShieldBonus', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 text-center',
style: {
width: '60px',
fontSize: '8px',
verticalAlign: 'middle'
}
}, "Shield", React.createElement("br", null), "Bonus"), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 84px'
},
className: 'espergen-binput',
value: character.acShieldBonusText ? character.acShieldBonusText : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acShieldBonusText', e.target.value);
}
})), React.createElement("span", {
className: 'ml-2',
style: {}
}, "+"), React.createElement("div", null, React.createElement("input", {
type: 'text',
className: 'espergen-binput',
value: character.acDexMod ? character.acDexMod : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acDexMod', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 text-center',
style: {
width: '60px',
fontSize: '8px',
verticalAlign: 'middle'
}
}, "Dexterity", React.createElement("br", null), "Modifier"), React.createElement("div", {
style: {
display: 'inline-block',
verticalAlign: 'middle',
lineHeight: '12px'
}
}, React.createElement("input", {
type: 'text',
className: 'espergen-binput',
style: {
height: '12px',
width: '12px',
fontSize: '7px'
},
value: character.acMediumArmour ? character.acMediumArmour : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acMediumArmour', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 ml-1 mr-3',
style: {
fontSize: '8px',
verticalAlign: 'middle'
}
}, "Medium Armour (Max Bonus + 2)"), React.createElement("br", null), React.createElement("input", {
type: 'text',
className: 'espergen-binput',
style: {
height: '12px',
width: '12px',
fontSize: '7px'
},
value: character.acHeavyArmour ? character.acHeavyArmour : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acHeavyArmour', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 ml-1 mr-3',
style: {
fontSize: '8px',
verticalAlign: 'middle'
}
}, "Heavy Armour (No Dex Bonus)")), React.createElement("input", {
type: 'text',
className: 'espergen-binput',
style: {
height: '12px',
width: '12px',
fontSize: '8px'
},
value: character.acStealthDisAdv ? character.acStealthDisAdv : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acStealthDisAdv', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 ml-1 mr-2',
style: {
fontSize: '7px',
verticalAlign: 'middle'
}
}, "Stealth", React.createElement("br", null), "Disadv")), React.createElement("span", {
className: 'ml-2',
style: {}
}, "+"), React.createElement("div", null, React.createElement("input", {
type: 'text',
className: 'espergen-binput',
value: character.acPowerModifier ? character.acPowerModifier : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acPowerModifier', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 text-center',
style: {
width: '60px',
fontSize: '8px',
verticalAlign: 'middle'
}
}, "Power", React.createElement("br", null), "Modifier"), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 84px'
},
className: 'espergen-binput',
value: character.acPowerModifierText ? character.acPowerModifierText : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acPowerModifierText', e.target.value);
}
})), React.createElement("span", {
className: 'ml-2',
style: {}
}, "+"), React.createElement("div", null, React.createElement("input", {
type: 'text',
className: 'espergen-binput',
value: character.acItemModifier ? character.acItemModifier : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acItemModifier', e.target.value);
}
}), React.createElement("label", {
className: 'mb-0 text-center',
style: {
width: '60px',
fontSize: '8px',
verticalAlign: 'middle'
}
}, "Item", React.createElement("br", null), "Modifier"), React.createElement("input", {
type: 'text',
style: {
width: 'calc(100% - 84px'
},
className: 'espergen-binput',
value: character.acItemModifierText ? character.acItemModifierText : '',
onChange: function onChange(e) {
return _this2.updateCharacter('acItemModifierText', e.target.value);
}
})), React.createElement("span", {
className: 'ml