diff --git a/css/components/content/Content.scss b/css/components/content/Content.scss index 74774f93..42f540ad 100644 --- a/css/components/content/Content.scss +++ b/css/components/content/Content.scss @@ -57,13 +57,14 @@ display: flex; flex-wrap: wrap; - > div:not(.btn):not(.iconbutton):not(.textfield):not(.dropdown), > h2, > h3, > h4, > ul { + > div:not(.btn):not(.btn-icon):not(.textfield):not(.dropdown), > h2, > h3, > h4, > ul { flex: 1 0 auto; width: 100%; + margin-top: 20px; } .textfield, .dropdown { - + .iconbutton { + + .btn-icon { margin: 10px 0 10px 11px; } } diff --git a/css/components/content/attribute/Attribute.scss b/css/components/content/attribute/Attribute.scss index 4b69841a..3b12ab05 100644 --- a/css/components/content/attribute/Attribute.scss +++ b/css/components/content/attribute/Attribute.scss @@ -54,7 +54,7 @@ } } - > .iconbutton { + > .btn-icon { margin-top: 5px; } diff --git a/css/components/layout/BorderButton.scss b/css/components/layout/BorderButton.scss index 96f88327..3f53da52 100644 --- a/css/components/layout/BorderButton.scss +++ b/css/components/layout/BorderButton.scss @@ -33,7 +33,7 @@ margin-top: 0; text-decoration: none; - &.primary { + &.btn-primary { border-image: linear-gradient(to bottom, #0abdb7 0%, #0abdb7 60%, #0c4550 100%) 1 1 1 1; color: #a3c7c7; background-color: transparentize(#101721, .5); @@ -64,7 +64,7 @@ &.disabled { pointer-events: none; border-color: #2b2f34 !important; - background: transparent !important; + background: none !important; color: #31353a !important; border-image: none !important; box-shadow: none; diff --git a/css/components/layout/IconButton.scss b/css/components/layout/IconButton.scss index 8dfb6895..9a1aa6fc 100644 --- a/css/components/layout/IconButton.scss +++ b/css/components/layout/IconButton.scss @@ -1,4 +1,4 @@ -.iconbutton { +.btn-icon { width: 32px; height: 32px; color: #c8aa6e; @@ -24,7 +24,7 @@ } } - &.primary { + &.btn-primary { background: linear-gradient(to bottom, #0abdb7 0%, #0abdb7 60%, #0c4550 100%); color: #a3c7c7; diff --git a/dist/bundle.js b/dist/bundle.js index 93203686..b20acfc6 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -1097,6 +1097,11 @@ var ProfileActions = { _AppDispatcher2.default.dispatch({ actionType: _ActionTypes2.default.REROLL_WEIGHT }); + }, + endCharacterCreation: function endCharacterCreation() { + _AppDispatcher2.default.dispatch({ + actionType: _ActionTypes2.default.FINALIZE_CHARACTER_CREATION + }); } }; @@ -1359,6 +1364,7 @@ var ServerActions = { }, loadHeroSuccess: function loadHeroSuccess(id, data) { var short = _HerolistStore2.default.get(id); + data = JSON.parse(data); _AppDispatcher2.default.dispatch(_extends({ actionType: _ActionTypes2.default.RECEIVE_HERO }, _extends({}, short, data))); @@ -3323,6 +3329,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _AttributeCalc = require('./AttributeCalc'); @@ -3341,6 +3349,10 @@ var _ELStore = require('../../../stores/ELStore'); var _ELStore2 = _interopRequireDefault(_ELStore); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _react = require('react'); var _react2 = _interopRequireDefault(_react); @@ -3351,6 +3363,8 @@ var _Scroll2 = _interopRequireDefault(_Scroll); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } @@ -3360,44 +3374,58 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var Attribute = function (_Component) { _inherits(Attribute, _Component); - function Attribute(props) { + function Attribute() { + var _Object$getPrototypeO; + + var _temp, _this, _ret; + _classCallCheck(this, Attribute); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Attribute).call(this, props)); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - _this.state = { + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(Attribute)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.state = { attributes: _AttributeStore2.default.getAllForView(), baseValues: _AttributeStore2.default.getBaseValues(), + phase: _PhaseStore2.default.get(), sum: _AttributeStore2.default.getSum() - }; - - _this._updateAttributeStore = function () { + }, _this._updateAttributeStore = function () { return _this.setState({ attributes: _AttributeStore2.default.getAllForView(), baseValues: _AttributeStore2.default.getBaseValues(), sum: _AttributeStore2.default.getSum() }); - }; - - return _this; + }, _this._updatePhaseStore = function () { + return _this.setState({ + phase: _PhaseStore2.default.get() + }); + }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(Attribute, [{ key: 'componentDidMount', value: function componentDidMount() { _AttributeStore2.default.addChangeListener(this._updateAttributeStore); + _PhaseStore2.default.addChangeListener(this._updatePhaseStore); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { _AttributeStore2.default.removeChangeListener(this._updateAttributeStore); + _PhaseStore2.default.removeChangeListener(this._updatePhaseStore); } }, { key: 'render', value: function render() { + var _state = this.state; + var baseValues = _state.baseValues; + var sum = _state.sum; + + var other = _objectWithoutProperties(_state, ['baseValues', 'sum']); var START_EL = _ELStore2.default.getStart(); - var sumMax = this.state.sum >= START_EL.max_attrsum; + var sumMax = sum >= START_EL.max_attrsum; var max = START_EL.max_attr; var element = this.state.attributes.length === 8 ? _react2.default.createElement( @@ -3413,10 +3441,10 @@ var Attribute = function (_Component) { 'div', { className: 'counter' }, 'Punkte in Eigenschaften: ', - this.state.sum + sum ), - _react2.default.createElement(_AttributeList2.default, { attributes: this.state.attributes, max: max, sumMax: sumMax }), - _react2.default.createElement(_AttributeCalc2.default, { attributes: this.state.attributes, baseValues: this.state.baseValues }) + _react2.default.createElement(_AttributeList2.default, _extends({}, other, { max: max, sumMax: sumMax })), + _react2.default.createElement(_AttributeCalc2.default, _extends({}, other, { baseValues: baseValues })) ) ) ) : null; @@ -3430,7 +3458,7 @@ var Attribute = function (_Component) { exports.default = Attribute; -},{"../../../stores/AttributeStore":118,"../../../stores/ELStore":121,"../../layout/Scroll":102,"./AttributeCalc":33,"./AttributeList":35,"react":328}],32:[function(require,module,exports){ +},{"../../../stores/AttributeStore":118,"../../../stores/ELStore":121,"../../../stores/PhaseStore":127,"../../layout/Scroll":102,"./AttributeCalc":33,"./AttributeList":35,"react":328}],32:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -3458,10 +3486,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var AttributeBorder = function (_Component) { _inherits(AttributeBorder, _Component); - function AttributeBorder(props) { + function AttributeBorder() { _classCallCheck(this, AttributeBorder); - return _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeBorder).call(this, props)); + return _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeBorder).apply(this, arguments)); } _createClass(AttributeBorder, [{ @@ -3542,10 +3570,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var AttributeCalc = function (_Component) { _inherits(AttributeCalc, _Component); - function AttributeCalc(props) { + function AttributeCalc() { _classCallCheck(this, AttributeCalc); - return _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeCalc).call(this, props)); + return _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeCalc).apply(this, arguments)); } _createClass(AttributeCalc, [{ @@ -3554,6 +3582,7 @@ var AttributeCalc = function (_Component) { var _props = this.props; var attributes = _props.attributes; var baseValues = _props.baseValues; + var phase = _props.phase; var calculated = [{ @@ -3631,7 +3660,11 @@ var AttributeCalc = function (_Component) { 'div', { className: 'calculated' }, calculated.map(function (attribute) { - return _react2.default.createElement(_AttributeCalcItem2.default, { key: attribute.label, attribute: attribute }); + return _react2.default.createElement(_AttributeCalcItem2.default, { + key: attribute.label, + attribute: attribute, + phase: phase + }); }) ); } @@ -3642,7 +3675,8 @@ var AttributeCalc = function (_Component) { AttributeCalc.propTypes = { attributes: _react.PropTypes.array.isRequired, - baseValues: _react.PropTypes.object.isRequired + baseValues: _react.PropTypes.object.isRequired, + phase: _react.PropTypes.number.isRequired }; exports.default = AttributeCalc; @@ -3684,32 +3718,40 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var AttributeCalcItem = function (_Component) { _inherits(AttributeCalcItem, _Component); - function AttributeCalcItem(props) { + function AttributeCalcItem() { + var _Object$getPrototypeO; + + var _temp, _this, _ret; + _classCallCheck(this, AttributeCalcItem); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeCalcItem).call(this, props)); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - _this.addMaxEnergyPoint = function () { + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(AttributeCalcItem)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.addMaxEnergyPoint = function () { return _AttributeActions2.default.addMaxEnergyPoint(_this.props.attribute.label); - }; - - return _this; + }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(AttributeCalcItem, [{ key: 'render', value: function render() { - var _props$attribute = this.props.attribute; + var _props = this.props; + var _props$attribute = _props.attribute; var disabledIncrease = _props$attribute.disabledIncrease; var disabledPermanent = _props$attribute.disabledPermanent; var other = _objectWithoutProperties(_props$attribute, ['disabledIncrease', 'disabledPermanent']); - var increaseElement = this.props.attribute.hasOwnProperty('disabledIncrease') && other.value !== '-' ? _react2.default.createElement(_IconButton2.default, { className: 'add', icon: '', onClick: this.addMaxEnergyPoint, disabled: disabledIncrease }) : null; + var phase = _props.phase; - var rebuyElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' ? _react2.default.createElement(_IconButton2.default, { className: 'rebuy', icon: '', disabled: disabledPermanent }) : null; - var rebuyUndoElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' ? _react2.default.createElement(_IconButton2.default, { className: 'rebuy-undo', icon: '', disabled: disabledPermanent }) : null; + var increaseElement = this.props.attribute.hasOwnProperty('disabledIncrease') && other.value !== '-' && phase > 2 ? _react2.default.createElement(_IconButton2.default, { className: 'add', icon: '', onClick: this.addMaxEnergyPoint, disabled: disabledIncrease }) : null; + + var rebuyElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' && phase > 2 ? _react2.default.createElement(_IconButton2.default, { className: 'rebuy', icon: '', disabled: disabledPermanent }) : null; + + var rebuyUndoElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' && phase > 2 ? _react2.default.createElement(_IconButton2.default, { className: 'rebuy-undo', icon: '', disabled: disabledPermanent }) : null; return _react2.default.createElement( _AttributeBorder2.default, @@ -3725,7 +3767,8 @@ var AttributeCalcItem = function (_Component) { }(_react.Component); AttributeCalcItem.propTypes = { - attribute: _react.PropTypes.object.isRequired + attribute: _react.PropTypes.object.isRequired, + phase: _react.PropTypes.number.isRequired }; exports.default = AttributeCalcItem; @@ -3761,10 +3804,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var AttributeList = function (_Component) { _inherits(AttributeList, _Component); - function AttributeList(props) { + function AttributeList() { _classCallCheck(this, AttributeList); - return _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeList).call(this, props)); + return _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeList).apply(this, arguments)); } _createClass(AttributeList, [{ @@ -3791,6 +3834,7 @@ var AttributeList = function (_Component) { AttributeList.propTypes = { attributes: _react.PropTypes.array.isRequired, max: _react.PropTypes.number.isRequired, + phase: _react.PropTypes.number.isRequired, sumMax: _react.PropTypes.bool.isRequired }; exports.default = AttributeList; @@ -3831,38 +3875,42 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var AttributeListItem = function (_Component) { _inherits(AttributeListItem, _Component); - function AttributeListItem(props) { + function AttributeListItem() { + var _Object$getPrototypeO; + + var _temp, _this, _ret; + _classCallCheck(this, AttributeListItem); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(AttributeListItem).call(this, props)); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - _this.addPoint = function () { + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(AttributeListItem)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.addPoint = function () { return _AttributeActions2.default.addPoint(_this.props.attribute.id); - }; - - _this.removePoint = function () { + }, _this.removePoint = function () { return _AttributeActions2.default.removePoint(_this.props.attribute.id); - }; - - return _this; + }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(AttributeListItem, [{ key: 'render', value: function render() { - var _props$attribute = this.props.attribute; + var _props = this.props; + var _props$attribute = _props.attribute; var id = _props$attribute.id; var short = _props$attribute.short; var value = _props$attribute.value; var disabledIncrease = _props$attribute.disabledIncrease; var disabledDecrease = _props$attribute.disabledDecrease; + var phase = _props.phase; return _react2.default.createElement( _AttributeBorder2.default, { className: id, label: short, value: value }, _react2.default.createElement(_IconButton2.default, { className: 'add', icon: '', onClick: this.addPoint, disabled: disabledIncrease }), - _react2.default.createElement(_IconButton2.default, { className: 'remove', icon: '', onClick: this.removePoint, disabled: disabledDecrease }) + phase < 3 ? _react2.default.createElement(_IconButton2.default, { className: 'remove', icon: '', onClick: this.removePoint, disabled: disabledDecrease }) : null ); } }]); @@ -3871,7 +3919,8 @@ var AttributeListItem = function (_Component) { }(_react.Component); AttributeListItem.propTypes = { - attribute: _react.PropTypes.object.isRequired + attribute: _react.PropTypes.object.isRequired, + phase: _react.PropTypes.number.isRequired }; exports.default = AttributeListItem; @@ -4280,7 +4329,6 @@ var DisAdvAddListItem = function (_Component) { var inputElement2; if (['ADV_4', 'ADV_16', 'ADV_17', 'ADV_47', 'DISADV_48'].indexOf(disadv.id) > -1) { - console.log(disadv.sel); if (this.state.selected !== '') { ap = disadv.ap[_DisAdvStore2.default.get(this.state.selected).skt - 1]; } @@ -7943,6 +7991,10 @@ var _APStore = require('../../../stores/APStore'); var _APStore2 = _interopRequireDefault(_APStore); +var _BorderButton = require('../../layout/BorderButton'); + +var _BorderButton2 = _interopRequireDefault(_BorderButton); + var _CultureStore = require('../../../stores/rcp/CultureStore'); var _CultureStore2 = _interopRequireDefault(_CultureStore); @@ -7983,6 +8035,10 @@ var _RaceStore = require('../../../stores/rcp/RaceStore'); var _RaceStore2 = _interopRequireDefault(_RaceStore); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _ProfileActions = require('../../../actions/ProfileActions'); var _ProfileActions2 = _interopRequireDefault(_ProfileActions); @@ -8014,12 +8070,18 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var Overview = function (_Component) { _inherits(Overview, _Component); - function Overview(props) { + function Overview() { + var _Object$getPrototypeO; + + var _temp, _this, _ret; + _classCallCheck(this, Overview); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Overview).call(this, props)); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - _this.state = { + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(Overview)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.state = { advActive: _DisAdvStore2.default.getActiveForView(true), disadvActive: _DisAdvStore2.default.getActiveForView(false), name: _ProfileStore2.default.getName(), @@ -8029,11 +8091,10 @@ var Overview = function (_Component) { eyes: _ProfileStore2.default.getEyes(), size: _ProfileStore2.default.getSize(), weight: _ProfileStore2.default.getWeight(), + phase: _PhaseStore2.default.get(), showImageUpload: false, editName: false - }; - - _this._updateProfileStore = function () { + }, _this._updateProfileStore = function () { return _this.setState({ name: _ProfileStore2.default.getName(), gender: _ProfileStore2.default.getGender(), @@ -8043,68 +8104,50 @@ var Overview = function (_Component) { size: _ProfileStore2.default.getSize(), weight: _ProfileStore2.default.getWeight() }); - }; - - _this.showImageUpload = function () { + }, _this._updatePhaseStore = function () { + return _this.setState({ + phase: _PhaseStore2.default.get() + }); + }, _this.showImageUpload = function () { return _ProfileActions2.default.showImageUpload(); - }; - - _this.changeName = function (name) { + }, _this.changeName = function (name) { _ProfileActions2.default.changeName(name); _this.setState({ editName: false }); - }; - - _this.editName = function () { + }, _this.editName = function () { return _this.setState({ editName: true }); - }; - - _this.editNameCancel = function () { + }, _this.editNameCancel = function () { return _this.setState({ editName: false }); - }; - - _this.changeHair = function (option) { + }, _this.changeHair = function (option) { return _ProfileActions2.default.changeHair(option); - }; - - _this.changeEyes = function (option) { + }, _this.changeEyes = function (option) { return _ProfileActions2.default.changeEyes(option); - }; - - _this.changeSize = function (event) { + }, _this.changeSize = function (event) { return _ProfileActions2.default.changeSize(event.target.value); - }; - - _this.changeWeight = function (event) { + }, _this.changeWeight = function (event) { return _ProfileActions2.default.changeWeight(event.target.value); - }; - - _this.rerollHair = function () { + }, _this.rerollHair = function () { return _ProfileActions2.default.rerollHair(); - }; - - _this.rerollEyes = function () { + }, _this.rerollEyes = function () { return _ProfileActions2.default.rerollEyes(); - }; - - _this.rerollSize = function () { + }, _this.rerollSize = function () { return _ProfileActions2.default.rerollSize(); - }; - - _this.rerollWeight = function () { + }, _this.rerollWeight = function () { return _ProfileActions2.default.rerollWeight(); - }; - - return _this; + }, _this.endCharacterCreation = function () { + return _ProfileActions2.default.endCharacterCreation(); + }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(Overview, [{ key: 'componentDidMount', value: function componentDidMount() { + _PhaseStore2.default.addChangeListener(this._updatePhaseStore); _ProfileStore2.default.addChangeListener(this._updateProfileStore); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { + _PhaseStore2.default.removeChangeListener(this._updatePhaseStore); _ProfileStore2.default.removeChangeListener(this._updateProfileStore); } }, { @@ -8118,6 +8161,7 @@ var Overview = function (_Component) { var eyes = _state.eyes; var size = _state.size; var weight = _state.weight; + var phase = _state.phase; var hairArr = _RaceStore2.default.getCurrent() ? [['blauschwarz', 1], ['blond', 2], ['braun', 3], ['dunkelblond', 4], ['dunkelbraun', 5], ['goldblond', 6], ['grau', 7], ['hellblond', 8], ['hellbraun', 9], ['kupferrot', 10], ['mittelblond', 11], ['mittelbraun', 12], ['rot', 13], ['rotblond', 14], ['schneeweiß', 15], ['schwarz', 16], ['silbern', 17], ['weißblond', 18], ['dunkelgrau', 19], ['hellgrau', 20], ['salzweiß', 21], ['silberweiß', 22], ['feuerrot', 23]].filter(function (e) { @@ -8234,18 +8278,31 @@ var Overview = function (_Component) { onChange: this.changeWeight }), _react2.default.createElement(_IconButton2.default, { icon: '', onClick: this.rerollWeight }), - _react2.default.createElement( - 'h3', + phase === 2 ? _react2.default.createElement( + 'div', null, - 'Vorteile' - ), - _react2.default.createElement(_OverviewDisAdv2.default, { list: this.state.advActive }), - _react2.default.createElement( - 'h3', + _react2.default.createElement(_BorderButton2.default, { + label: 'Heldenerstellung beenden', + onClick: this.endCharacterCreation, + primary: true + }) + ) : null, + phase === 3 ? _react2.default.createElement( + 'div', null, - 'Nachteile' - ), - _react2.default.createElement(_OverviewDisAdv2.default, { list: this.state.disadvActive }) + _react2.default.createElement( + 'h3', + null, + 'Vorteile' + ), + _react2.default.createElement(_OverviewDisAdv2.default, { list: this.state.advActive }), + _react2.default.createElement( + 'h3', + null, + 'Nachteile' + ), + _react2.default.createElement(_OverviewDisAdv2.default, { list: this.state.disadvActive }) + ) : null ) ); } @@ -8256,7 +8313,7 @@ var Overview = function (_Component) { exports.default = Overview; -},{"../../../actions/ProfileActions":15,"../../../stores/APStore":117,"../../../stores/DisAdvStore":120,"../../../stores/ELStore":121,"../../../stores/ProfileStore":128,"../../../stores/rcp/CultureStore":137,"../../../stores/rcp/ProfessionStore":138,"../../../stores/rcp/ProfessionVariantStore":139,"../../../stores/rcp/RaceStore":140,"../../layout/Avatar":94,"../../layout/Dropdown":98,"../../layout/IconButton":99,"../../layout/Scroll":102,"../../layout/TextField":106,"./OverviewDisAdv":67,"./OverviewNameChange":68,"react":328}],67:[function(require,module,exports){ +},{"../../../actions/ProfileActions":15,"../../../stores/APStore":117,"../../../stores/DisAdvStore":120,"../../../stores/ELStore":121,"../../../stores/PhaseStore":127,"../../../stores/ProfileStore":128,"../../../stores/rcp/CultureStore":137,"../../../stores/rcp/ProfessionStore":138,"../../../stores/rcp/ProfessionVariantStore":139,"../../../stores/rcp/RaceStore":140,"../../layout/Avatar":94,"../../layout/BorderButton":95,"../../layout/Dropdown":98,"../../layout/IconButton":99,"../../layout/Scroll":102,"../../layout/TextField":106,"./OverviewDisAdv":67,"./OverviewNameChange":68,"react":328}],67:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -8415,6 +8472,10 @@ var _Overview = require('./Overview'); var _Overview2 = _interopRequireDefault(_Overview); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _react = require('react'); var _react2 = _interopRequireDefault(_react); @@ -8438,29 +8499,50 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var Profile = function (_Component) { _inherits(Profile, _Component); - function Profile(props) { + function Profile() { + var _Object$getPrototypeO; + + var _temp, _this, _ret; + _classCallCheck(this, Profile); - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Profile).call(this, props)); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - _this.state = { + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(Profile)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.state = { + phase: _PhaseStore2.default.get(), tab: 'overview' - }; - - _this.handleClick = function (tab) { + }, _this._updatePhaseStore = function () { + return _this.setState({ + phase: _PhaseStore2.default.get() + }); + }, _this.handleClick = function (tab) { return _this.setState({ tab: tab }); - }; - - return _this; + }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(Profile, [{ + key: 'componentDidMount', + value: function componentDidMount() { + _PhaseStore2.default.addChangeListener(this._updatePhaseStore); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + _PhaseStore2.default.removeChangeListener(this._updatePhaseStore); + } + }, { key: 'render', value: function render() { + var _state = this.state; + var phase = _state.phase; + var tab = _state.tab; + var element; - switch (this.state.tab) { + switch (tab) { case 'overview': element = _react2.default.createElement(_Overview2.default, null); break; @@ -8484,7 +8566,8 @@ var Profile = function (_Component) { // }, { label: 'Heldenbogen', - tag: 'sheets' + tag: 'sheets', + disabled: phase < 3 }], active: this.state.tab, onClick: this.handleClick }), @@ -8498,7 +8581,7 @@ var Profile = function (_Component) { exports.default = Profile; -},{"../../layout/SubTabs":104,"./Overview":66,"./Sheets":72,"react":328}],70:[function(require,module,exports){ +},{"../../../stores/PhaseStore":127,"../../layout/SubTabs":104,"./Overview":66,"./Sheets":72,"react":328}],70:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -10889,6 +10972,10 @@ var _CombatTechniquesStore = require('../../../stores/CombatTechniquesStore'); var _CombatTechniquesStore2 = _interopRequireDefault(_CombatTechniquesStore); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _RadioButtonGroup = require('../../layout/RadioButtonGroup'); var _RadioButtonGroup2 = _interopRequireDefault(_RadioButtonGroup); @@ -10901,6 +10988,10 @@ var _Scroll = require('../../layout/Scroll'); var _Scroll2 = _interopRequireDefault(_Scroll); +var _SkillListItem = require('./SkillListItem'); + +var _SkillListItem2 = _interopRequireDefault(_SkillListItem); + var _TextField = require('../../layout/TextField'); var _TextField2 = _interopRequireDefault(_TextField); @@ -10924,7 +11015,8 @@ var CombatTechniques = function (_Component) { _this.state = { combattech: _CombatTechniquesStore2.default.getAllForView(), filter: _CombatTechniquesStore2.default.getFilter(), - sortOrder: _CombatTechniquesStore2.default.getSortOrder() + sortOrder: _CombatTechniquesStore2.default.getSortOrder(), + phase: _PhaseStore2.default.get() }; _this._updateCombatTechniquesStore = function () { @@ -11051,27 +11143,19 @@ var CombatTechniques = function (_Component) { return ATTR[attr]; }).join('/'); return _react2.default.createElement( - 'tr', - { key: ct.id }, - _react2.default.createElement( - 'td', - { className: 'type' }, - GR[ct.gr - 1] - ), - _react2.default.createElement( - 'td', - { className: 'name' }, - _react2.default.createElement( - 'h2', - null, - ct.name - ) - ), - _react2.default.createElement( - 'td', - { className: 'fw' }, - ct.fw - ), + _SkillListItem2.default, + { + key: ct.id, + group: GR[ct.gr - 1], + name: ct.name, + fw: ct.fw, + skt: ct.skt, + checkDisabled: true, + addPoint: _this2.addPoint.bind(null, ct.id), + addDisabled: ct.disabledIncrease, + removePoint: _this2.state.phase < 3 ? _this2.removePoint.bind(null, ct.id) : undefined, + removeDisabled: ct.disabledDecrease + }, _react2.default.createElement( 'td', { className: 'leit' }, @@ -11086,17 +11170,6 @@ var CombatTechniques = function (_Component) { 'td', { className: 'pa' }, ct.gr == 2 ? '--' : ct.pa - ), - _react2.default.createElement( - 'td', - { className: 'skt' }, - COMP[ct.skt - 1] - ), - _react2.default.createElement( - 'td', - { className: 'inc' }, - _react2.default.createElement(_BorderButton2.default, { label: '+', onClick: _this2.addPoint.bind(null, ct.id), disabled: ct.disabledIncrease }), - _react2.default.createElement(_BorderButton2.default, { label: '-', onClick: _this2.removePoint.bind(null, ct.id), disabled: ct.disabledDecrease }) ) ); }) @@ -11112,7 +11185,7 @@ var CombatTechniques = function (_Component) { exports.default = CombatTechniques; -},{"../../../actions/CombatTechniquesActions":4,"../../../stores/CombatTechniquesStore":119,"../../layout/BorderButton":95,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/TextField":106,"react":328}],86:[function(require,module,exports){ +},{"../../../actions/CombatTechniquesActions":4,"../../../stores/CombatTechniquesStore":119,"../../../stores/PhaseStore":127,"../../layout/BorderButton":95,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/TextField":106,"./SkillListItem":87,"react":328}],86:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -11137,6 +11210,10 @@ var _LiturgiesStore = require('../../../stores/LiturgiesStore'); var _LiturgiesStore2 = _interopRequireDefault(_LiturgiesStore); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _RadioButtonGroup = require('../../layout/RadioButtonGroup'); var _RadioButtonGroup2 = _interopRequireDefault(_RadioButtonGroup); @@ -11183,6 +11260,7 @@ var Liturgies = function (_Component) { addChantsDisabled: _LiturgiesStore2.default.isActivationDisabled(), filter: _LiturgiesStore2.default.getFilter(), sortOrder: _LiturgiesStore2.default.getSortOrder(), + phase: _PhaseStore2.default.get(), showAddSlidein: false }; @@ -11448,7 +11526,7 @@ var Liturgies = function (_Component) { key: liturgy.id, group: GR[liturgy.gr - 1], name: name, - removePoint: _this2.removePoint.bind(null, liturgy.id), + removePoint: _this2.state.phase < 3 ? _this2.removePoint.bind(null, liturgy.id) : undefined, removeDisabled: liturgy.disabledDecrease }, obj), _react2.default.createElement( @@ -11470,7 +11548,7 @@ var Liturgies = function (_Component) { exports.default = Liturgies; -},{"../../../actions/LiturgiesActions":12,"../../../stores/LiturgiesStore":126,"../../layout/BorderButton":95,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/Slidein":103,"../../layout/TextField":106,"./SkillListItem":87,"react":328}],87:[function(require,module,exports){ +},{"../../../actions/LiturgiesActions":12,"../../../stores/LiturgiesStore":126,"../../../stores/PhaseStore":127,"../../layout/BorderButton":95,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/Slidein":103,"../../layout/TextField":106,"./SkillListItem":87,"react":328}],87:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -11519,6 +11597,7 @@ var SkillListItem = function (_Component) { var fw = _props.fw; var children = _props.children; var check = _props.check; + var checkDisabled = _props.checkDisabled; var checkmod = _props.checkmod; var skt = _props.skt; var isNotActive = _props.isNotActive; @@ -11558,13 +11637,13 @@ var SkillListItem = function (_Component) { ATTR_8: 'KK' }; - var checkElement = _react2.default.createElement( + var checkElement = !checkDisabled ? _react2.default.createElement( 'td', { className: 'check' }, check ? check.map(function (attr) { return ATTR[attr]; }).join('/') + ' ' + (checkmod ? '(+' + checkmod + ')' : '') : null - ); + ) : null; var COMP = ['A', 'B', 'C', 'D', 'E']; @@ -11586,7 +11665,7 @@ var SkillListItem = function (_Component) { 'td', { className: 'inc' }, addPoint ? _react2.default.createElement(_BorderButton2.default, { label: '+', onClick: addPoint, disabled: addDisabled }) : null, - _react2.default.createElement(_BorderButton2.default, { label: '-', onClick: removePoint, disabled: removeDisabled }) + removePoint ? _react2.default.createElement(_BorderButton2.default, { label: '-', onClick: removePoint, disabled: removeDisabled }) : null ); return _react2.default.createElement( @@ -11622,6 +11701,7 @@ SkillListItem.propTypes = { fw: _react.PropTypes.number, children: _react.PropTypes.node, check: _react.PropTypes.array, + checkDisabled: _react.PropTypes.bool, checkmod: _react.PropTypes.string, skt: _react.PropTypes.number, isNotActive: _react.PropTypes.bool, @@ -11800,6 +11880,10 @@ var _Dropdown = require('../../layout/Dropdown'); var _Dropdown2 = _interopRequireDefault(_Dropdown); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _RadioButtonGroup = require('../../layout/RadioButtonGroup'); var _RadioButtonGroup2 = _interopRequireDefault(_RadioButtonGroup); @@ -11857,6 +11941,7 @@ var SpecialAbilities = function (_Component) { saDeactive: _SpecialAbilitiesStore2.default.getDeactiveForView(), filter: _SpecialAbilitiesStore2.default.getFilter(), sortOrder: _SpecialAbilitiesStore2.default.getSortOrder(), + phase: _PhaseStore2.default.get(), showAddSlidein: false }; @@ -11913,6 +11998,8 @@ var SpecialAbilities = function (_Component) { }, { key: 'render', value: function render() { + var _this2 = this; + return _react2.default.createElement( 'div', { className: 'page', id: 'specialabilities' }, @@ -12011,14 +12098,14 @@ var SpecialAbilities = function (_Component) { { className: 'ap' }, 'AP' ), - _react2.default.createElement('td', { className: 'inc' }) + this.state.phase < 3 ? _react2.default.createElement('td', { className: 'inc' }) : null ) ), _react2.default.createElement( 'tbody', null, this.state.saActive.map(function (sa, index) { - return _react2.default.createElement(_SpecialAbilitiesListRemoveItem2.default, { key: 'SA_ACTIVE_' + index, item: sa }); + return _react2.default.createElement(_SpecialAbilitiesListRemoveItem2.default, { key: 'SA_ACTIVE_' + index, item: sa, phase: _this2.state.phase }); }) ) ) @@ -12032,7 +12119,7 @@ var SpecialAbilities = function (_Component) { exports.default = SpecialAbilities; -},{"../../../actions/SpecialAbilitiesActions":18,"../../../stores/SpecialAbilitiesStore":129,"../../layout/BorderButton":95,"../../layout/Dropdown":98,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/Slidein":103,"../../layout/TextField":106,"./SpecialAbilitiesListAddItem":90,"./SpecialAbilitiesListRemoveItem":91,"react":328}],90:[function(require,module,exports){ +},{"../../../actions/SpecialAbilitiesActions":18,"../../../stores/PhaseStore":127,"../../../stores/SpecialAbilitiesStore":129,"../../layout/BorderButton":95,"../../layout/Dropdown":98,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/Slidein":103,"../../layout/TextField":106,"./SpecialAbilitiesListAddItem":90,"./SpecialAbilitiesListRemoveItem":91,"react":328}],90:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -12341,20 +12428,27 @@ var SpecialAbilitiesListRemoveItem = function (_Component) { var name = item.name; var tierElement; + var addSpecial; var roman = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X']; if (item.tiers !== undefined && item.tiers !== null) { var array = []; - if (item.id === 'SA_30') array.push(['MS', 4]); + if (item.id === 'SA_30' && (item.tier === 4 || this.props.phase < 3)) array.push(['MS', 4]); for (var i = 0; i < item.tiers; i++) { - array.push([roman[i], i + 1]); + if (this.props.phase < 3 || i + 1 >= item.tier) { + array.push([roman[i], i + 1]); + } + } + if (array.length > 1) { + tierElement = _react2.default.createElement(_Dropdown2.default, { + className: 'tiers', + value: item.tier, + onChange: this.handleSelectTier, + options: array }); + } else { + addSpecial = ' ' + array[0][0]; } - tierElement = _react2.default.createElement(_Dropdown2.default, { - className: 'tiers', - value: item.tier, - onChange: this.handleSelectTier, - options: array }); ap = item.tier === 4 && item.id === 'SA_30' ? 0 : item.ap * item.tier; } @@ -12363,6 +12457,7 @@ var SpecialAbilitiesListRemoveItem = function (_Component) { if (item.hasOwnProperty('sid')) args.sid = item.sid; if (item.hasOwnProperty('add')) name += ' (' + item.add + ')'; + if (addSpecial) name += addSpecial; var GROUPS = ['Allgemein', 'Schicksal', 'Kampf', 'Magisch', 'Magisch (Stab)', 'Magisch (Hexe)', 'Geweiht']; @@ -12393,11 +12488,11 @@ var SpecialAbilitiesListRemoveItem = function (_Component) { { className: 'ap' }, ap ), - _react2.default.createElement( + this.props.phase < 3 ? _react2.default.createElement( 'td', { className: 'inc' }, _react2.default.createElement(_BorderButton2.default, { label: '-', onClick: this.removeFromList.bind(null, args), disabled: disabled }) - ) + ) : null ); } }]); @@ -12406,7 +12501,8 @@ var SpecialAbilitiesListRemoveItem = function (_Component) { }(_react.Component); SpecialAbilitiesListRemoveItem.propTypes = { - item: _react.PropTypes.object + item: _react.PropTypes.object, + phase: _react.PropTypes.number }; exports.default = SpecialAbilitiesListRemoveItem; @@ -12427,6 +12523,10 @@ var _BorderButton = require('../../layout/BorderButton'); var _BorderButton2 = _interopRequireDefault(_BorderButton); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _RadioButtonGroup = require('../../layout/RadioButtonGroup'); var _RadioButtonGroup2 = _interopRequireDefault(_RadioButtonGroup); @@ -12481,6 +12581,7 @@ var Spells = function (_Component) { addSpellsDisabled: _SpellsStore2.default.isActivationDisabled(), filter: _SpellsStore2.default.getFilter(), sortOrder: _SpellsStore2.default.getSortOrder(), + phase: _PhaseStore2.default.get(), showAddSlidein: false }; @@ -12746,7 +12847,7 @@ var Spells = function (_Component) { key: spell.id, group: GR[spell.gr - 1], name: name, - removePoint: _this2.removePoint.bind(null, spell.id), + removePoint: _this2.state.phase < 3 ? _this2.removePoint.bind(null, spell.id) : undefined, removeDisabled: spell.disabledDecrease }, obj), _react2.default.createElement( @@ -12768,7 +12869,7 @@ var Spells = function (_Component) { exports.default = Spells; -},{"../../../actions/SpellsActions":19,"../../../stores/SpellsStore":130,"../../layout/BorderButton":95,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/Slidein":103,"../../layout/TextField":106,"./SkillListItem":87,"react":328}],93:[function(require,module,exports){ +},{"../../../actions/SpellsActions":19,"../../../stores/PhaseStore":127,"../../../stores/SpellsStore":130,"../../layout/BorderButton":95,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/Slidein":103,"../../layout/TextField":106,"./SkillListItem":87,"react":328}],93:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -12789,6 +12890,10 @@ var _CultureStore = require('../../../stores/rcp/CultureStore'); var _CultureStore2 = _interopRequireDefault(_CultureStore); +var _PhaseStore = require('../../../stores/PhaseStore'); + +var _PhaseStore2 = _interopRequireDefault(_PhaseStore); + var _RadioButtonGroup = require('../../layout/RadioButtonGroup'); var _RadioButtonGroup2 = _interopRequireDefault(_RadioButtonGroup); @@ -12834,16 +12939,17 @@ var Talents = function (_Component) { var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Talents).call(this, props)); _this.state = { - talents: _TalentsStore2.default.getAllForView(), + list: _TalentsStore2.default.getAllForView(), filter: _TalentsStore2.default.getFilter(), sortOrder: _TalentsStore2.default.getSortOrder(), talentRating: _TalentsStore2.default.getTalentRating(), - currentCulture: _CultureStore2.default.getCurrent() + currentCulture: _CultureStore2.default.getCurrent(), + phase: _PhaseStore2.default.get() }; _this._updateTalentsStore = function () { return _this.setState({ - talents: _TalentsStore2.default.getAllForView(), + list: _TalentsStore2.default.getAllForView(), filter: _TalentsStore2.default.getFilter(), sortOrder: _TalentsStore2.default.getSortOrder(), talentRating: _TalentsStore2.default.getTalentRating() @@ -12957,7 +13063,7 @@ var Talents = function (_Component) { _react2.default.createElement( 'tbody', null, - this.state.talents.map(function (talent) { + this.state.list.map(function (talent) { return _react2.default.createElement(_SkillListItem2.default, { key: talent.id, typ: _this2.state.talentRating && typ_talents.indexOf(talent.id) > -1, @@ -12969,7 +13075,7 @@ var Talents = function (_Component) { skt: talent.skt, addPoint: _this2.addPoint.bind(null, talent.id), addDisabled: talent.disabledIncrease, - removePoint: _this2.removePoint.bind(null, talent.id), + removePoint: _this2.state.phase < 3 ? _this2.removePoint.bind(null, talent.id) : undefined, removeDisabled: talent.disabledDecrease }); }) ) @@ -12984,7 +13090,7 @@ var Talents = function (_Component) { exports.default = Talents; -},{"../../../actions/TalentsActions":21,"../../../stores/TalentsStore":131,"../../../stores/rcp/CultureStore":137,"../../layout/BorderButton":95,"../../layout/Checkbox":96,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/TextField":106,"./SkillListItem":87,"react":328}],94:[function(require,module,exports){ +},{"../../../actions/TalentsActions":21,"../../../stores/PhaseStore":127,"../../../stores/TalentsStore":131,"../../../stores/rcp/CultureStore":137,"../../layout/BorderButton":95,"../../layout/Checkbox":96,"../../layout/RadioButtonGroup":101,"../../layout/Scroll":102,"../../layout/TextField":106,"./SkillListItem":87,"react":328}],94:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -13090,17 +13196,17 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var BorderButton = function (_Component) { _inherits(BorderButton, _Component); - function BorderButton(props) { + function BorderButton() { _classCallCheck(this, BorderButton); - return _possibleConstructorReturn(this, Object.getPrototypeOf(BorderButton).call(this, props)); + return _possibleConstructorReturn(this, Object.getPrototypeOf(BorderButton).apply(this, arguments)); } _createClass(BorderButton, [{ key: 'render', value: function render() { - var className = (0, _classnames2.default)('btn', this.props.primary && 'primary', this.props.fullWidth && 'fullWidth', this.props.disabled && 'disabled', this.props.className); + var className = (0, _classnames2.default)('btn', this.props.primary && 'btn-primary', this.props.fullWidth && 'fullWidth', this.props.disabled && 'disabled', this.props.className); var labelTextElement = this.props.label ? _react2.default.createElement( 'span', @@ -13546,7 +13652,7 @@ var IconButton = function (_Component) { key: 'render', value: function render() { - var className = (0, _classnames2.default)('iconbutton', this.props.primary && 'primary', this.props.disabled && 'disabled', this.props.className); + var className = (0, _classnames2.default)('btn-icon', this.props.primary && 'btn-primary', this.props.disabled && 'disabled', this.props.className); return _react2.default.createElement( 'div', @@ -14925,6 +15031,7 @@ exports.default = (0, _keymirror2.default)({ // PhaseStore INCREASE_PHASE: null, RESET_PHASE: null, + FINALIZE_CHARACTER_CREATION: null, // CharbaseStore SET_RULES: null, @@ -15590,8 +15697,7 @@ var AttributeStore = _extends({}, _events.EventEmitter.prototype, { }, getAllForView: function getAllForView() { - // var phase = PhaseStore.get(); - var phase = 1; + var phase = _PhaseStore2.default.get(); var attrsObj = _ListStore2.default.getObjByCategory(CATEGORY); var attrs = []; @@ -15756,7 +15862,7 @@ function _updateSortOrder(option) { function _clear() { _ListStore2.default.getAllByCategory(CATEGORY).forEach(function (e) { - _ListStore2.default.setSR(e.id, 0); + _ListStore2.default.setSR(e.id, 6); _ListStore2.default.setProperty(e.id, 'dependencies', []); }); } @@ -15838,10 +15944,7 @@ var CombatTechniquesStore = _extends({}, _events.EventEmitter.prototype, { }, getAllForView: function getAllForView() { - var _this2 = this; - - // var phase = PhaseStore.get(); - var phase = 1; + var phase = _PhaseStore2.default.get(); var combatTechniquesObj = _ListStore2.default.getObjByCategory(CATEGORY); var combatTechniques = []; @@ -15863,7 +15966,7 @@ var CombatTechniquesStore = _extends({}, _events.EventEmitter.prototype, { var _max_bonus = this.get('ADV_17').active.indexOf(id) > -1 ? 1 : 0; if (phase < 3) _max = _ELStore2.default.getStart().max_combattech + _max_bonus;else { var primary = leit.map(function (e) { - return _this2.get('ATTR_' + e).value; + return _ListStore2.default.get(e).value; }); _max = Math.max.apply(Math, _toConsumableArray(primary)) + 2 + _max_bonus; } @@ -17050,35 +17153,82 @@ var _reqPurchase2 = _interopRequireDefault(_reqPurchase); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _history = []; +var _lastSaveIndex = -1; -function _add(obj) { - _history.push(obj); +function _add(actionType) { + var costs = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; + var previousState = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2]; + var options = arguments[3]; + + _history.push({ + actionType: actionType, + costs: costs, + previousState: previousState, + options: options + }); } function _clear() { _history = []; } +function _resetSaveIndex() { + _lastSaveIndex = _history.length - 1; +} + function _updateAll(array) { _history = array; + _lastSaveIndex = _history.length - 1; } function _assignRCP(selections) { - // if (!selections.useCulturePackage) { - // _used -= _rcp[1]; - // } + var race = _RaceStore2.default.getCurrent(); + _add(_ActionTypes2.default.SELECT_RACE, race.ap, undefined, race.id); + var culture = _CultureStore2.default.getCurrent(); + _add(_ActionTypes2.default.SELECT_CULTURE, culture.ap, undefined, race.id); + var profession = _ProfessionStore2.default.getCurrent() || { id: 'P_0', ap: 0 }; + _add(_ActionTypes2.default.SELECT_PROFESSION, profession.ap, undefined, profession.id); + var professionVariant = _ProfessionVariantStore2.default.getCurrent(); + if (professionVariant) { + _add(_ActionTypes2.default.SELECT_PROFESSION_VARIANT, professionVariant.ap, undefined, professionVariant.id); + } - // if (selections.buyLiteracy) { - // const culture = CultureStore.getCurrent(); - // let id = culture.literacy.length > 1 ? selections.litc : culture.literacy[0]; - // _used += ListStore.get('SA_28').sel[id - 1][2]; - // } + var attrSel = selections.attrSel; + var useCulturePackage = selections.useCulturePackage; + var lang = selections.lang; + var buyLiteracy = selections.buyLiteracy; + var litc = selections.litc; + var cantrips = selections.cantrips; + var combattech = selections.combattech; + var curses = selections.curses; + var langLitc = selections.langLitc; + var spec = selections.spec; - // let p = ProfessionStore.getCurrent(); - // if (p) { - // let apCosts = reqPurchase(p.req); - // _used += apCosts; - // } + + _add('SELECT_ATTRIBUTE_MOD', undefined, undefined, attrSel); + _add('PURCHASE_CULTURE_PACKAGE', undefined, undefined, useCulturePackage); + if (lang !== 0) { + _add('SELECT_MOTHER_TONGUE', undefined, undefined, lang); + } + _add('PURCHASE_MAIN_LITERACY', undefined, undefined, buyLiteracy); + if (spec[0] !== null || spec[1] !== '') { + _add('SELECT_SKILL_SPECIALISATION', undefined, undefined, spec); + } + if (litc !== 0) { + _add('SELECT_MAIN_LITERACY', undefined, undefined, litc); + } + if (cantrips.size > 0) { + _add('SELECT_CANTRIPS', undefined, undefined, Array.from(cantrips)); + } + if (combattech.size > 0) { + _add('SELECT_COMBAT_TECHNIQUES', undefined, undefined, Array.from(combattech)); + } + if (curses.size > 0) { + _add('SELECT_CURSES', undefined, undefined, Array.from(curses)); + } + if (langLitc.size > 0) { + _add('SELECT_LANGUAGES_AND_LITERACIES', undefined, undefined, Array.from(langLitc)); + } } var HistoryStore = _extends({}, _events.EventEmitter.prototype, { @@ -17111,18 +17261,31 @@ HistoryStore.dispatchToken = _AppDispatcher2.default.register(function (payload) case _ActionTypes2.default.CLEAR_HERO: _clear(); + _resetSaveIndex(); break; case _ActionTypes2.default.RECEIVE_HERO: + _clear(); _updateAll(payload.history); + _resetSaveIndex(); break; case _ActionTypes2.default.ASSIGN_RCP_ENTRIES: _assignRCP(payload.selections); + _resetSaveIndex(); + break; + + case _ActionTypes2.default.FINALIZE_CHARACTER_CREATION: + _resetSaveIndex(); break; case _ActionTypes2.default.CREATE_NEW_HERO: _clear(); + _resetSaveIndex(); + break; + + case _ActionTypes2.default.SAVE_HERO_SUCCESS: + _resetSaveIndex(); break; default: @@ -18126,8 +18289,7 @@ var LiturgiesStore = _extends({}, _events.EventEmitter.prototype, { getActiveForView: function getActiveForView() { var _this = this; - // var phase = PhaseStore.get(); - var phase = 1; + var phase = _PhaseStore2.default.get(); var liturgiesObj = _ListStore2.default.getObjByCategory(CATEGORY); var liturgies = []; @@ -18166,7 +18328,7 @@ var LiturgiesStore = _extends({}, _events.EventEmitter.prototype, { }).length; if (phase < 3) _max = _ELStore2.default.getStart().max_skill + _max_bonus;else { var checkValues = liturgy.check.map(function (attr) { - return _this.get('ATTR_' + attr).value; + return _ListStore2.default.get(attr).value; }); _max = Math.max.apply(Math, _toConsumableArray(checkValues)) + 2 + _max_bonus; } @@ -18360,6 +18522,10 @@ PhaseStore.dispatchToken = _AppDispatcher2.default.register(function (payload) { _update(2); break; + case _ActionTypes2.default.FINALIZE_CHARACTER_CREATION: + _update(3); + break; + default: return true; } @@ -19729,8 +19895,7 @@ var SpellsStore = _extends({}, _events.EventEmitter.prototype, { getActiveForView: function getActiveForView() { var _this = this; - // var phase = PhaseStore.get(); - var phase = 1; + var phase = _PhaseStore2.default.get(); var spellsObj = _ListStore2.default.getObjByCategory(CATEGORY); var spells = []; @@ -19773,7 +19938,7 @@ var SpellsStore = _extends({}, _events.EventEmitter.prototype, { }).length; if (phase < 3) _max = _ELStore2.default.getStart().max_skill + _max_bonus;else { var checkValues = spell.check.map(function (attr) { - return _this.get('ATTR_' + attr).value; + return _ListStore2.default.get(attr).value; }); _max = Math.max.apply(Math, _toConsumableArray(checkValues)) + 2 + _max_bonus; } @@ -20057,10 +20222,7 @@ var TalentsStore = _extends({}, _events.EventEmitter.prototype, { }, getAllForView: function getAllForView() { - var _this = this; - - // var phase = PhaseStore.get(); - var phase = 1; + var phase = _PhaseStore2.default.get(); var talentsObj = _ListStore2.default.getObjByCategory(CATEGORY); var talents = []; @@ -20080,7 +20242,7 @@ var TalentsStore = _extends({}, _events.EventEmitter.prototype, { }).length; if (phase < 3) _max = _ELStore2.default.getStart().max_skill + _max_bonus;else { var checkValues = check.map(function (attr) { - return _this.get('ATTR_' + attr).value; + return _ListStore2.default.get(attr).value; }); _max = Math.max.apply(Math, _toConsumableArray(checkValues)) + 2 + _max_bonus; } @@ -21945,38 +22107,7 @@ var WebAPIUtils = { }, loadHero: function loadHero(id) { _ServerActions2.default.startLoading(); - _ServerActions2.default.loadHeroSuccess(id, { - "sex": "m", - "pers": { - _hair: 1, - _eyes: 1, - _size: 167, - _weight: 71 - }, - "attr": { - "values": [["ATTR_1", 12, 0], ["ATTR_2", 13, 0], ["ATTR_3", 12, 0], ["ATTR_4", 13, 0], ["ATTR_5", 14, 1], ["ATTR_6", 13, 0], ["ATTR_7", 12, 0], ["ATTR_8", 11, 0]], - "_le": 5, - "_le_add": 0, - "_ae_add": 0, - "_ke_add": 0, - "_sk": -5, - "_zk": -5, - "_gs": 8 - }, - "disadv": { - "active": [["ADV_3", {}], ["ADV_5", {}], ["ADV_40", {}], ["ADV_47", { "sid": "CT_2" }], ["ADV_49", {}], ["DISADV_1", [[2, 2]]], ["DISADV_15", {}], ["DISADV_25", {}], ["DISADV_40", { "tier": 1 }]], - "_showRating": true - }, - "talents": { - "active": [["TAL_8", 6], ["TAL_10", 4], ["TAL_18", 7], ["TAL_20", 5], ["TAL_21", 4], ["TAL_25", 4], ["TAL_28", 9], ["TAL_29", 7], ["TAL_34", 4], ["TAL_38", 5], ["TAL_39", 3], ["TAL_40", 2], ["TAL_47", 5], ["TAL_48", 8], ["TAL_50", 7], ["TAL_51", 1], ["TAL_55", 1], ["TAL_59", 1]], - "_talentRating": true }, - "ct": { - "active": [["CT_3", 8], ["CT_5", 8]] }, "spells": { "active": [] }, "chants": { "active": [] - }, - "sa": { - "active": [["SA_10", [["TAL_48", "Test"]]], ["SA_28", [9, 14]], ["SA_30", [[8, 4], [23, 2], [6, 1]]]] - } - }); + _ServerActions2.default.loadHeroSuccess(id, '{\n\t\t\t"sex":"m",\n\t\t\t"pers":{\n\t\t\t\t"_hair": 1,\n\t\t\t\t"_eyes": 1,\n\t\t\t\t"_size": 167,\n\t\t\t\t"_weight": 71\n\t\t\t},\n\t\t\t"attr":{\n\t\t\t\t"values":[\n\t\t\t\t\t["ATTR_1",12,0],\n\t\t\t\t\t["ATTR_2",13,0],\n\t\t\t\t\t["ATTR_3",12,0],\n\t\t\t\t\t["ATTR_4",13,0],\n\t\t\t\t\t["ATTR_5",14,1],\n\t\t\t\t\t["ATTR_6",13,0],\n\t\t\t\t\t["ATTR_7",12,0],\n\t\t\t\t\t["ATTR_8",11,0]\n\t\t\t\t],\n\t\t\t\t"_le":5,\n\t\t\t\t"_le_add":0,\n\t\t\t\t"_ae_add":0,\n\t\t\t\t"_ke_add":0,\n\t\t\t\t"_sk":-5,\n\t\t\t\t"_zk":-5,\n\t\t\t\t"_gs":8\n\t\t\t},\n\t\t\t"disadv":{\n\t\t\t\t"active":[\n\t\t\t\t\t["ADV_3",{}],["ADV_5",{}],["ADV_40",{}],["ADV_47",{"sid":"CT_2"}],["ADV_49",{}],["DISADV_1",[[2,2]]],["DISADV_15",{}],["DISADV_25",{}],["DISADV_40",{"tier":1}]\n\t\t\t\t],\n\t\t\t\t"_showRating":true\n\t\t\t},\n\t\t\t"talents":{\n\t\t\t\t"active":[["TAL_8",6],["TAL_10",4],["TAL_18",7],["TAL_20",5],["TAL_21",4],["TAL_25",4],["TAL_28",9],["TAL_29",7],["TAL_34",4],["TAL_38",5],["TAL_39",3],["TAL_40",2],["TAL_47",5],["TAL_48",8],["TAL_50",7],["TAL_51",1],["TAL_55",1],["TAL_59",1]],\n\t\t\t\t"_talentRating":true},\n\t\t\t"ct":{\n\t\t\t\t"active":[["CT_3",8],["CT_5",8]]},"spells":{"active":[]},"chants":{"active":[]\n\t\t\t},\n\t\t\t"sa":{\n\t\t\t\t"active":[["SA_10",[["TAL_48","Test"]]],["SA_28",[9,14]],["SA_30",[[8,4],[23,2],[6,1]]]]\n\t\t\t},\n\t\t\t"history": []\n\t\t}'); // return new Promise(function(){ // jQuery.ajax( // { @@ -22043,19 +22174,19 @@ var WebAPIUtils = { } else if (type === 'file') { finalData = new FormData(data); } - // return new Promise(function(){ - // jQuery.ajax({ - // url: 'http://cha5app.dsa-sh.de/php/uploadheropic.php?hid=' + ProfileStore.getID() + '&type=' + type + urlAdd, - // type: 'POST', - // data: finalData, - // success: function(result) { - _ServerActions2.default.changeHeroAvatarSuccess(type === 'file' ? result : data); - // }, - // error: function(error) { - // ServerActions.connectionError(error); - // } - // }); - // }); + return new Promise(function () { + _jQuery2.default.ajax({ + url: 'http://cha5app.dsa-sh.de/php/uploadheropic.php?hid=' + _ProfileStore2.default.getID() + '&type=' + type + urlAdd, + type: 'POST', + data: finalData, + success: function success(result) { + _ServerActions2.default.changeHeroAvatarSuccess(type === 'file' ? result : data); + }, + error: function error(_error14) { + _ServerActions2.default.connectionError(_error14); + } + }); + }); }, deleteHero: function deleteHero(heroid) { _ServerActions2.default.startLoading(); @@ -22067,8 +22198,8 @@ var WebAPIUtils = { success: function success(result) { resolve(result); }, - error: function error(_error14) { - _ServerActions2.default.connectionError(_error14); + error: function error(_error15) { + _ServerActions2.default.connectionError(_error15); } }); }); diff --git a/dist/bundle.min.css b/dist/bundle.min.css index 448b3ed0..4733549e 100644 --- a/dist/bundle.min.css +++ b/dist/bundle.min.css @@ -1 +1 @@ -#body>main section#disadv .page table tbody tr td,#body>main section#skills .page#specialabilities table tbody tr td{height:42px}#body>main section#disadv .page table tbody tr td.name>div,#body>main section#skills .page#specialabilities table tbody tr td.name>div{display:flex;align-items:center}#body>main section#disadv .page table tbody tr td.name>div>h2,#body>main section#skills .page#specialabilities table tbody tr td.name>div>h2,#body>main section#disadv .page table tbody tr td.name>div>div,#body>main section#skills .page#specialabilities table tbody tr td.name>div>div{flex:none;margin:0}#body>main section#disadv .page table tbody tr td.name>div>div,#body>main section#skills .page#specialabilities table tbody tr td.name>div>div{margin-left:14px}#body>main section#disadv .page table tbody tr td.name>div>div.tiers,#body>main section#skills .page#specialabilities table tbody tr td.name>div>div.tiers{width:65px}#body>main,#body>main>section{width:100%;height:100%;position:relative}#body>main section#disadv .page table tbody tr.imp td{color:#c89c3d}#body>main section#disadv .page table tbody tr.imp td.name h2,#body>main section#disadv .page table tbody tr.imp td.fw{color:#fabe0a}#body>main section#disadv .page table tbody tr.typ td,#body>main section#skills .page#talents table tbody tr.typ td{color:#005177}#body>main section#disadv .page table tbody tr.typ td.name h2,#body>main section#skills .page#talents table tbody tr.typ td.name h2,#body>main section#disadv .page table tbody tr.typ td.fw,#body>main section#skills .page#talents table tbody tr.typ td.fw{color:#0acbe6}#body>main section#disadv .page table tbody tr.untyp td,#body>main section#skills .page#talents table tbody tr.untyp td{color:#aa1b32}#body>main section#disadv .page table tbody tr.untyp td.name h2,#body>main section#skills .page#talents table tbody tr.untyp td.name h2,#body>main section#disadv .page table tbody tr.untyp td.fw,#body>main section#skills .page#talents table tbody tr.untyp td.fw{color:#ff2345}#body>main section#herolist .page>.list ul li:hover::after,#body>main section#rcp .page>.list ul li.active::after{position:absolute;left:-11px;top:-1px;width:-webkit-calc(100% + 5px);width:calc(100% + 5px);height:100%;content:"";border-image:linear-gradient(to right, #fabe0a 0%, rgba(250,190,10,0) 100%);border-image-slice:1;border-width:1px 0 1px 6px;border-style:solid;border-color:transparent;pointer-events:none}@font-face{font-family:"C5AUI";font-style:normal;font-weight:normal;src:url("fonts/Cha5App UI/Cha5App-UI.ttf") format("truetype")}@font-face{font-family:"Material";font-style:normal;font-weight:normal;src:url("fonts/Material/Material.ttf") format("truetype")}@font-face{font-family:"Alegreya";font-style:normal;font-weight:700;src:url("fonts/Alegreya-Bold.ttf") format("truetype")}@font-face{font-family:"Alegreya";font-style:italic;font-weight:700;src:url("fonts/Alegreya-BoldItalic.ttf") format("truetype")}@font-face{font-family:"Alegreya";font-style:normal;font-weight:400;src:url("fonts/Alegreya-Regular.ttf") format("truetype")}@font-face{font-family:"Alegreya SC";font-style:normal;font-weight:700;src:url("fonts/AlegreyaSC-Bold.ttf") format("truetype")}@font-face{font-family:"Alegreya SC";font-style:normal;font-weight:400;src:url("fonts/AlegreyaSC-Regular.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:700;src:url("fonts/AlegreyaSans-Bold.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:italic;font-weight:700;src:url("fonts/AlegreyaSans-BoldItalic.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:900;src:url("fonts/AlegreyaSans-ExtraBold.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:italic;font-weight:900;src:url("fonts/AlegreyaSans-ExtraBoldItalic.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:500;src:url("fonts/AlegreyaSans-Medium.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:400;src:url("fonts/AlegreyaSans-Regular.ttf") format("truetype")}@font-face{font-family:"Gentium Basic";font-style:normal;font-weight:400;src:url("fonts/GentiumBasic-Regular.ttf") format("truetype")}@page{size:210mm 297mm;margin:0}@media print{html{width:100%}html,body,#bodywrapper,#body{overflow:visible !important}main .titlebar,main .subtabs{display:none}main section#misc{padding:0 !important;overflow:visible !important;background:white !important}#sheets{padding:0 !important;overflow:visible !important}#sheets .options{display:none}#sheets .sheet-wrapper.scroll.gm-scrollbar-container{overflow:visible !important}#sheets .sheet-wrapper.scroll.gm-scrollbar-container .gm-scroll-view{overflow:visible !important;height:auto !important;width:auto !important}#sheets .sheet-wrapper.scroll.gm-scrollbar-container .gm-scrollbar{display:none !important}#sheets .scroll-inner{padding:0 !important;display:block !important}#sheets .scroll-inner .sheet{display:block !important;margin:0 !important;height:296mm !important;page-break-after:always;overflow:hidden !important}#sheets .scroll-inner .sheet>.header .attributes .attr>.value{border-width:1.25pt !important}#sheets .scroll-inner .sheet>.header .attributes .attr>.value>div{border-width:0.95pt !important}#sheets .scroll-inner .sheet.main>.upper>.ap>div span:first-child{border-width:0.95pt !important}#sheets .scroll-inner .sheet.main>.upper>.portrait .avatar{border-width:0.95pt !important}#sheets .scroll-inner .sheet.main>.lower>.calculated>div>.values>div{border-width:0.95pt !important}}#body>main{flex:1 1 100%}.avatar{background-size:cover;background-repeat:no-repeat;background-position:50%;background-color:black;box-shadow:0 0 1px 1px black inset;border-radius:50%}.avatar-wrapper{background:linear-gradient(to bottom, #9a7830 0%, #6d5024 100%);padding:2px;border-radius:50%;position:relative}.avatar-wrapper>.avatar{height:100%;width:100%}.avatar-wrapper.no-avatar{border:2px solid #2b2f34;padding:0;background:none}.avatar-wrapper.no-avatar>.avatar{box-shadow:none;background:none}.btn,input[type="submit"]{text-align:center;background-color:#1a1a1a;padding:3px 14px 6px;letter-spacing:0.05em;border:2px solid transparent;border-image:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%) 1 1 1 1;display:inline-block;box-shadow:0 0 2px black inset, 0 0 2px black;font:400 17px/19px "Alegreya SC";text-transform:lowercase;color:#c8a86f;margin-top:22px;min-width:140px}.btn:hover,.btn:active,input[type="submit"]:hover,input[type="submit"]:active{background-image:linear-gradient(to bottom, rgba(200,155,60,0) 50%, rgba(200,155,60,0.25) 100%);cursor:pointer}.btn:hover,input[type="submit"]:hover{border-image:linear-gradient(to bottom, #f0e6d2 0%, #c89b3c 100%) 1 1 1 1;color:#f0e6d2}.btn:active,input[type="submit"]:active{border-image:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%) 1 1 1 1;color:#5c5b57}.btn{margin-top:0;text-decoration:none}.btn.primary{border-image:linear-gradient(to bottom, #0abdb7 0%, #0abdb7 60%, #0c4550 100%) 1 1 1 1;color:#a3c7c7;background-color:rgba(16,23,33,0.5);min-width:160px}.btn.primary:hover{border-image:linear-gradient(to bottom, #b4fbfb 0%, #4bb8d9 100%) 1 1 1 1;color:#caf8f7;text-shadow:0 0 3px #4be3de;box-shadow:0 0 4px rgba(75,227,222,0.6),0 0 4px rgba(75,227,222,0.6) inset;background-image:linear-gradient(rgba(75,184,217,0) 0%, rgba(75,184,217,0.25) 100%)}.btn.primary:active{background-color:transparent;color:#0d404c;text-shadow:none;border:2px solid #0c4550;box-shadow:0 0 4px rgba(75,227,222,0.2),0 0 4px rgba(75,227,222,0.2) inset;background-image:linear-gradient(rgba(75,184,217,0) 0%, rgba(75,184,217,0.125) 100%)}.btn.fullWidth{display:block}.btn.disabled{pointer-events:none;border-color:#2b2f34 !important;background:transparent !important;color:#31353a !important;border-image:none !important;box-shadow:none}.card .card-title+.card-content{margin-top:20px}.card.featured{flex:1 100%;padding-top:28px}.checkbox{display:flex;padding:6px 11px 6px 0;margin:0 1px}.checkbox:hover{background:#1e2328;cursor:pointer}.checkbox:hover .icon .border{border-image:linear-gradient(to bottom, #785a28 0%, #ccbe91 100%);border-image-slice:1}.checkbox:hover .icon .hook{border-color:#f1e6d4}.checkbox:hover label{color:#f1e6d4;cursor:pointer}.checkbox .icon{flex:1 0%;margin:4px 0 5px}.checkbox .icon .border{height:11px;width:11px;border:1px solid #785a28;box-shadow:0 0 0 1px rgba(0,0,0,0.15),0 0 3px 1px rgba(0,0,0,0.15) inset}.checkbox .icon .hook{visibility:hidden;margin-left:5px;margin-top:-13px;height:10px;width:4px;transform:rotate(45deg);border-width:0 1px 1px 0;border-color:#c8aa6e;border-style:solid}.checkbox.checked .hook{visibility:visible}.checkbox.checked label{color:#f1e6d4}.checkbox.disabled{pointer-events:none}.checkbox.disabled .icon{flex:1 0%;margin:4px 0 5px}.checkbox.disabled .icon .border{border:1px solid rgba(122,123,118,0.5);box-shadow:0 none}.checkbox.disabled .icon .hook{border-color:#7a7b76}.checkbox.disabled label{color:#7a7b76}.checkbox label{flex:0 100%;color:#c89b3c;font:400 12px/20px Alegreya Sans;text-transform:uppercase;letter-spacing:0.05em;padding-left:11px}.collapse{margin:4px 0 0;overflow:hidden;height:24px;transition:height 0.2s cubic-bezier(0.28, 0.3, 0.09, 0.82)}.collapse .collapse-header{color:#a19b8f;font:bold 12px/24px Alegreya SC;letter-spacing:0.11em;text-transform:uppercase;height:24px;padding-left:20px;background:#1e2327}.collapse .collapse-header:before{display:inline-block;position:relative;height:0px;width:0px;border-width:4px 4px 0;border-style:solid;border-color:#a19b8f transparent transparent transparent;content:"";left:-11px;top:-2px;z-index:1;transform:rotate(-90deg);transition:transform 0.2s cubic-bezier(0.28, 0.3, 0.09, 0.82)}.collapse .collapse-header:hover{cursor:pointer}.collapse.expanded{height:auto}.collapse.expanded .collapse-header:before{transform:rotate(0deg)}.modal-backdrop{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;background:rgba(0,0,0,0.4);z-index:10000;justify-content:center;align-items:center}.modal-backdrop .modal-container{width:380px;height:auto;background:#010a13;border:1px solid #785a28;position:relative}.modal-backdrop .modal-container:before,.modal-backdrop .modal-container:after{position:absolute;display:block;content:"";width:-webkit-calc(100% - 10px);width:calc(100% - 10px);height:2px;left:4px;background:#785a28}.modal-backdrop .modal-container:before{top:-5px}.modal-backdrop .modal-container:after{bottom:-5px}.modal-backdrop .modal-container .modal-close{width:36px;height:36px;display:block;position:absolute;border-radius:50%;background:#010a13;border:1px solid #785a28;right:-18px;top:-18px}.modal-backdrop .modal-container .modal-close>div{border:1.5px solid #bda36c;border-radius:50%;color:#bda36c;margin:2px;font:14px/27px "C5AUI";text-align:center}.modal-backdrop .modal-container .modal-close:hover{cursor:pointer}.modal-backdrop .modal-container .modal-close:hover>div{color:#f1e6d4}.modal-backdrop .modal-container .modal-header{padding:24px 24px 15px}.modal-backdrop .modal-container .modal-header .modal-header-inner{font:bold 20px/24px Alegreya SC;color:#f1e6d4;letter-spacing:0.1em;text-transform:uppercase}.modal-backdrop .modal-container .modal-content{position:relative;height:-webkit-calc(100% - 77px);height:calc(100% - 77px)}.modal-backdrop .modal-container .modal-content .modal-content-inner{color:#878683;font:11px/16px "Source Sans Pro";letter-spacing:0.05em;padding:0 24px 55px}.modal-backdrop .modal-container .modal-content .modal-content-inner p{margin-top:14px}.modal-backdrop .modal-container .modal-content .modal-content-inner p span.link{color:#015175;display:block;letter-spacing:0.03em;line-height:22px}.modal-backdrop .modal-container .modal-content .modal-content-inner p span.link:hover{color:#3685a7;cursor:pointer}.modal-backdrop .modal-container .modal-content .modal-content-inner>div{margin-top:14px}.modal-backdrop .modal-container .modal-content .modal-content-inner>div:first-child{margin-top:0}.modal-backdrop .modal-container .modal-footer{display:flex;justify-content:center;position:absolute;width:100%;left:0;bottom:-1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner{background:#010a13;position:relative;padding:0 1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div{box-shadow:0 none;margin:0 1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:first-child:before,.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:last-child:after{position:absolute;display:block;content:"";height:11px;width:1px;bottom:0;background:#785a28}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:first-child:before{left:-1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:last-child:after{right:-1px}.dropdown{width:280px;margin:10px 0;font:500 13px/30px Alegreya Sans}.dropdown label{color:#a19b8f;letter-spacing:0.05em;display:block;font:500 10px/1 Alegreya Sans;padding-bottom:6px}.dropdown>div{position:relative}.dropdown>div>.value{width:100%;height:32px;background:#11161c;padding:0 22px 0 11px;margin:0;color:#a19b8f;display:block;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid transparent;border-image:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);border-image-slice:1;box-shadow:0 0 1px black inset}.dropdown>div>.value:hover{cursor:pointer}.dropdown>div>.value::before,.dropdown>div>.value::after{position:absolute;content:"";height:2px;width:2px;border-width:1px;border-style:solid;border-color:#c5a461 #c5a461 transparent transparent;right:11px}.dropdown>div>.value::before{top:11px;transform:rotate(-45deg)}.dropdown>div>.value::after{bottom:11px;transform:rotate(135deg)}.dropdown>div>.down{position:absolute;width:100%;top:32px;left:0;z-index:100;overflow:hidden;height:1px;pointer-events:none}.dropdown>div>.down>div{position:relative}.dropdown>div>.down>div .gm-scroll-view>div{height:32px;padding:0 11px;line-height:30px;color:#ccbe91;position:relative}.dropdown>div>.down>div .gm-scroll-view>div:not(:last-child){height:33px;border-bottom:1px solid #1f282d}.dropdown>div>.down>div .gm-scroll-view>div:hover{cursor:pointer;color:#f1e6d4;background:#1c2328}.dropdown>div>.down>div .gm-scroll-view>div.active:after{content:"";position:absolute;top:12px;right:11px;width:11px;height:4px;border-width:0 0 1px 1px;border-style:solid;border-color:#f1e6d4;transform:rotate(-45deg)}.dropdown.active>div>.value{color:#524018;border-image:none;border-color:#524018;box-shadow:none}.dropdown.active>div>.value::before,.dropdown.active>div>.value::after{border-color:#524018 #524018 transparent transparent}.dropdown.active>div>.down{transition:height 0.35s cubic-bezier(0.23, 1, 0.32, 1);pointer-events:all;display:block;border:1px solid transparent;border-image:linear-gradient(to bottom, #524018 0%, #6d5024 100%);border-image-slice:1;background:#11161c}.dropdown.disabled{pointer-events:none}.dropdown.disabled>div>.value{color:#2b2f34;border-image:none;border-color:#2b2f34;box-shadow:none;background:transparent}.dropdown.disabled>div>.value::before,.dropdown.disabled>div>.value::after{border-color:#2b2f34 #2b2f34 transparent transparent}.dropdown.fullWidth{width:auto}.dropdown.top>div>.down{top:auto;bottom:32px}.dropdown.top.active>div>.down{border-image:linear-gradient(to bottom, #6d5024 0%, #524018 100%);border-image-slice:1}.iconbutton{width:32px;height:32px;color:#c8aa6e;text-align:center;border-radius:50%;background:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);padding:2px;overflow:hidden}.iconbutton>div{border-radius:50%;font:16px/28px Material;background:#1e282d}.iconbutton:hover{background:linear-gradient(to bottom, #f0e6d2 0%, #c89b3c 100%);cursor:pointer}.iconbutton:hover>div{background-image:linear-gradient(to bottom, rgba(200,155,60,0) 50%, rgba(200,155,60,0.25) 100%);color:#f0e6d2}.iconbutton.primary{background:linear-gradient(to bottom, #0abdb7 0%, #0abdb7 60%, #0c4550 100%);color:#a3c7c7}.iconbutton.primary>div{background:#101721}.iconbutton.primary:hover{background:linear-gradient(to bottom, #b4fbfb 0%, #4bb8d9 100%)}.iconbutton.primary:hover>div{background-image:linear-gradient(to bottom, #102120 20%, #214341 100%);color:#caf8f7}.iconbutton.disabled{border:2px solid #31353a;background:none;color:#31353a;pointer-events:none}.iconbutton.disabled>div{background:none;line-height:24px}.options-wrapper{width:320px;height:100%;position:fixed;z-index:1200;top:0;right:-320px;background:#121a1a;display:flex;flex-direction:column;color:white;-webkit-transition:all 0.45s cubic-bezier(0.23, 1, 0.32, 1);-moz-transition:all 0.45s cubic-bezier(0.23, 1, 0.32, 1);transition:all 0.45s cubic-bezier(0.23, 1, 0.32, 1)}.options-wrapper.active{right:0;box-shadow:0 0 36px #0c1010}.options-wrapper .-horizontal{display:none !important;opacity:0 !important}.options-wrapper .options-content-wrapper{flex:1 1 0}.options-wrapper .options-content-wrapper .options-content{touch-action:pan-y}.options-wrapper .options-content-wrapper .options-content>hr{border:0;margin:16px 12px;height:1px;background:#182424;width:-webkit-calc(100% - 24px);width:calc(100% - 24px)}.options-wrapper .options-bar{flex:0 0 auto;width:100%;height:48px}.options-wrapper .options-bar .command{float:right}.options-wrapper .options-bar .command .icon-wrapper{font-size:16px}.radiobutton{display:flex;height:32px;padding:6px 11px 6px 0;margin:0 1px}.radiobutton:hover{background:#1e2328;cursor:pointer}.radiobutton:hover label{color:#f1e6d4;cursor:pointer}.radiobutton .icon{flex:1 0%;transform:rotate(45deg);margin:5px 0 5px 1px}.radiobutton .icon .border{height:10px;width:10px;border:1px solid #785a28;box-shadow:0 0 0 1px rgba(0,0,0,0.15),0 0 3px 1px rgba(0,0,0,0.15) inset}.radiobutton .icon .dot{visibility:hidden;margin-left:2.5px;margin-top:-7.5px;height:5px;width:5px;background:#c8aa6e}.radiobutton.active{pointer-events:none}.radiobutton.active .dot{visibility:visible}.radiobutton.active label{color:#f1e6d4}.radiobutton.disabled{pointer-events:none}.radiobutton.disabled .icon .border{border:1px solid #2b2f34}.radiobutton.disabled .icon .dot{background:#2b2f34}.radiobutton.disabled label{color:#31353a}.radiobutton label{flex:0 100%;color:#c89b3c;font:400 12px/20px Alegreya Sans;text-transform:uppercase;letter-spacing:0.05em;padding-left:11px}.skillcard{min-width:320px !important;height:48px;display:flex;margin-top:12px;padding:0 !important;position:relative;text-align:left;text-overflow:ellipsis;font-family:"Source Sans Pro"}.skillcard .icon{flex:1 0%;height:48px;width:48px;position:relative}.skillcard .icon .icon-label{height:16px;width:34px;position:relative;margin:32px 0 0 14px;background:#00070e;border:1px solid #2b2f34;color:#a1a4a8;text-align:center;font:10px/14px "Source Sans Pro";pointer-events:none}.skillcard .icon .icon-border{margin-top:-46px;border:1px solid #2b2f34;height:44px;width:44px;pointer-events:none}.skillcard .icon .icon-border .icon-image{border:1px solid black;height:42px;width:42px}.skillcard .icon:hover .icon-border{border-color:#efe7d0}.skillcard .icon:hover+.tooltip{visibility:visible}.skillcard .tooltip{visibility:hidden;display:block;position:absolute;width:280px;border:1px solid #785a28;background:#010a13;padding:11px;bottom:58px;left:-116px}.skillcard .tooltip:after{display:block;position:absolute;height:12px;width:12px;border-color:transparent #785a28 #785a28 transparent;border-style:solid;border-width:1px;background:#010a13;content:"";left:130px;bottom:-7px;transform:rotate(45deg)}.skillcard .tooltip .header{display:flex;padding-bottom:11px}.skillcard .tooltip .header .title{color:#efe7d0;font:bold 11px/14px Caudex;text-transform:uppercase;letter-spacing:0.05em;text-align:left;width:222px}.skillcard .tooltip .header .level{font:12px/14px "Source Sans Pro";text-align:right;width:34px}.skillcard .tooltip .body{font-size:11px;line-height:14px}.skillcard .right{flex:1 100%;height:48px;padding-left:11px;white-space:nowrap}.skillcard .right .title{color:#efe7d0;font:bold 11px/20px Caudex;text-transform:uppercase;letter-spacing:0.05em;margin-top:4px}.skillcard .right .costs{color:#a19b8f;font:10px/20px "Source Sans Pro"}.skillcard:not(.active){opacity:0.75}.skillcard.disabled{opacity:0.4}.slidein-wrapper{pointer-events:none}.slidein-backdrop{position:fixed;top:0;bottom:0;left:0;right:0;display:none;justify-content:flex-end;align-items:flex-end;flex-direction:column;background:transparent;pointer-events:none;z-index:900}.slidein-backdrop.slidein-open{pointer-events:all;display:flex}.slidein-backdrop.slidein-open>.slidein{bottom:0}.slidein-backdrop .slidein{position:relative;background:#010a13;border-top:2px solid #785a28;height:-webkit-calc(100% - 80px);height:calc(100% - 80px);width:100%;bottom:-100%;right:0;color:#a1a1a1;font:13px/14px "Source Sans Pro";letter-spacing:0.03em;padding:3px 0}.slidein-backdrop .slidein:before{position:absolute;display:block;content:"";width:-webkit-calc(100% + 22px);width:calc(100% + 22px);height:0;border-color:#010a13 transparent #785a28;border-style:solid;border-width:2px 0 1px;top:0;left:0;z-index:999}.slidein-backdrop .slidein .slidein-close{width:36px;height:36px;display:block;position:absolute;border-radius:50%;background:#010a13;border:1px solid #785a28;right:20px;top:-15px;z-index:1000}.slidein-backdrop .slidein .slidein-close>div{border:2px solid #bda36c;border-radius:50%;color:#bda36c;margin:2px;font:18px/26px Material;text-align:center}.slidein-backdrop .slidein .slidein-close:hover{cursor:pointer}.slidein-backdrop .slidein .slidein-close:hover>div{color:white}.slidein-backdrop .slidein .slidein-content{position:relative;height:100%;padding:3px 0;display:flex;flex-wrap:nowrap;overflow:hidden}.slidein-backdrop .slidein .slidein-content .gm-scrollbar{z-index:22}.slidein-backdrop .slidein .slidein-content .scroll{flex:1 1 100%}.slidein-backdrop .slidein .slidein-content .scroll .scroll-inner{padding:22px 35px !important}.slidein-backdrop .slidein .slidein-content>.options{flex:1 0 auto;width:200px;margin-left:35px;padding-top:22px}.slidein-backdrop .slidein .slidein-content>.options .radiobutton-group{width:100%}.slidein-backdrop .slidein .slidein-content>.list table{width:100%;border-collapse:collapse;white-space:nowrap}.slidein-backdrop .slidein .slidein-content>.list table td{padding:5px 5px 5px 11px}.slidein-backdrop .slidein .slidein-content>.list table td.name{width:100%}.slidein-backdrop .slidein .slidein-content>.list table td.name,.slidein-backdrop .slidein .slidein-content>.list table td.fw{color:#f0e6d2}.slidein-backdrop .slidein .slidein-content>.list table thead{font:bold 13px/22px Alegreya SC}.slidein-backdrop .slidein .slidein-content>.list table thead tr td{border-bottom:1px solid rgba(255,255,255,0.075)}.slidein-backdrop .slidein .slidein-content>.list table tbody tr:not(:last-child) td{height:36px;border-bottom:1px solid rgba(255,255,255,0.075)}.slidein-backdrop .slidein .slidein-content>.list table tbody tr:hover{background:rgba(255,255,255,0.025)}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td{height:36px}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.name{vertical-align:middle}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.name h2{font:500 15px/15px Alegreya Sans;text-transform:none;color:#f0e6d2;display:inline-block}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.check,.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.skt{font:13px/13px Alegreya SC}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.inc{font-weight:500}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.inc .btn{padding:0 14px 3px;min-width:auto;font-size:16px}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td .textfield,.slidein-backdrop .slidein .slidein-content>.list table tbody tr td .dropdown{width:200px}.slidein-backdrop .slidein .slidein-content h4{font-size:13px;letter-spacing:0.075em;line-height:40px}.slider-wrapper{width:100%;max-width:280px}.slider-wrapper input[type=range]{-webkit-appearance:none;width:100%;height:32px;background:none;margin:0 0 -7px;padding:0}.slider-wrapper input[type=range]:focus{outline:none}.slider-wrapper input[type=range]::-webkit-slider-runnable-track{width:100%;height:2px;cursor:pointer;animate:0.2s;box-shadow:0 none;background:#1f282d;border-radius:0}.slider-wrapper input[type=range]::-webkit-slider-thumb{height:14px;width:14px;border-radius:0;background:#2c404c;cursor:pointer;box-shadow:0 none;margin-top:-7px;border:0 none;transform:rotate(45deg);-webkit-appearance:none;margin-top:-10px}.slider-wrapper input[type=range]::-webkit-slider-thumb:hover{background:#3c5462}.slider-wrapper input[type=range]::-moz-range-track{width:100%;height:2px;cursor:pointer;animate:0.2s;box-shadow:0 none;background:#1f282d;border-radius:0}.slider-wrapper input[type=range]::-moz-range-thumb{height:14px;width:14px;border-radius:0;background:#2c404c;cursor:pointer;box-shadow:0 none;margin-top:-7px;border:0 none;transform:rotate(45deg)}.slider-wrapper input[type=range]::-moz-range-thumb:hover{background:#3c5462}.slider-wrapper input[type=range]::-ms-track{width:100%;height:2px;cursor:pointer;animate:0.2s;box-shadow:0 none;background:transparent;color:transparent}.slider-wrapper input[type=range]::-ms-fill-lower{background:#2c404c;border-radius:0}.slider-wrapper input[type=range]::-ms-fill-upper{background:#1f282d;border-radius:0}.slider-wrapper input[type=range]::-ms-thumb{height:14px;width:14px;border-radius:0;background:#2c404c;cursor:pointer;box-shadow:0 none;margin-top:-7px;border:0 none;transform:rotate(45deg)}.slider-wrapper input[type=range]::-ms-thumb:hover{background:#3c5462}.slider-wrapper .slider-label{flex:0 100%;font:11px/11px "Source Sans Pro";letter-spacing:0.03em;display:flex}.slider-wrapper .slider-label span:first-child{flex:0 100%}.slider-wrapper .slider-label .slider-value{color:#c8aa6e;flex:1 0%}.subtabs{width:100%;display:flex;align-items:center;position:relative;height:42px;padding:10px 0}.subtabs>.tab{font:bold 13px/21px Alegreya SC;flex:0 1 auto;letter-spacing:0.1em;margin-left:35px;text-transform:uppercase;position:relative;color:#cdbe91;min-width:0}.subtabs>.tab:hover{color:#f1e6d4;cursor:pointer}.subtabs>.tab:active,.subtabs>.tab:focus{color:#c89b3c;cursor:pointer}.subtabs>.tab:last-child{margin-right:35px}.subtabs>.tab.active{pointer-events:none;color:#f1e6d4}.subtabs>.tab.active:after{position:absolute;content:"";width:4px;height:4px;bottom:-3px;left:0;right:0;margin:0 auto;border:1px solid #cdbe91;border-color:transparent #cdbe91 #cdbe91 transparent;transform:rotate(45deg)}.subtabs>.tab.disabled{pointer-events:none;color:#797974}.subtabs>.tab div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.textfield{width:280px;overflow:hidden;margin:10px 0;position:relative;font:500 13px/30px "Alegreya Sans"}.textfield .textfield-hint{width:100%;height:32px;padding:1px 12px;pointer-events:none;position:absolute;color:#a09b8c}.textfield .textfield-hint.hide{visibility:hidden}.textfield label{color:#a19b8f;font-size:10px;line-height:10px;letter-spacing:0.05em;display:block;padding-bottom:6px}.textfield input,.textfield textarea{width:100%;height:32px;border:1px solid #524018;background:#11161c;padding:0 11px;margin:0;color:#f0e6d2;font:500 13px/30px "Alegreya Sans";display:block;box-shadow:0 0 0 1px rgba(0,0,0,0.45),0 0 0 1px rgba(0,0,0,0.45) inset;outline:0 none}.textfield input:focus,.textfield input:active,.textfield textarea:focus,.textfield textarea:active{background:linear-gradient(to bottom, #11161c 0%, #1c2328 100%);border-image:linear-gradient(to bottom, #524018 0%, #ccbe91 100%);border-image-slice:1}.textfield.fullWidth{width:auto}.textfield.disabled{pointer-events:none}.textfield.disabled .textfield-hint{color:#31353a}.textfield.disabled label{color:#31353a}.textfield.disabled input,.textfield.disabled textarea{border:1px solid #2b2f34;background:none;color:#31353a;box-shadow:none}.titlebar{position:absolute;width:100%;z-index:800}.titlebar .main{height:80px;width:100%;display:flex;position:relative}.titlebar .main .back{flex:1 0 auto;display:flex;position:relative;margin-left:35px;width:40px;align-items:center;padding-left:4px}.titlebar .main .back+.left>div:first-child{margin-left:20px}.titlebar .main .back:after{position:absolute;height:50px;width:1px;content:"";background:#3c3732;top:15px;right:-1px}.titlebar .main .back svg{transform:rotate(45deg)}.titlebar .main .back svg path{fill:#c89b3c}.titlebar .main .back svg:hover{cursor:pointer}.titlebar .main .back svg:hover path{fill:#f1e6d4}.titlebar .main .left{flex:1 1 100%;overflow:hidden;display:flex;align-items:center}.titlebar .main .left h1{color:#f1e6d4;text-transform:uppercase;margin-left:24px;letter-spacing:0.1em}.titlebar .main .left>div:first-child{margin-left:40px}.titlebar .main .left>div.avatar-wrapper{flex-shrink:0;height:48px;width:48px}.titlebar .main .left>div.avatar-wrapper+div{margin-left:24px}.titlebar .main .left>div.avatar-wrapper>div.avatar{height:44px;width:44px}.titlebar .main .left>.tab{font:bold 15px/18px Alegreya SC;flex:0 1 auto;letter-spacing:0.1em;margin-left:35px;text-transform:uppercase;position:relative;color:#cdbe91;min-width:0}.titlebar .main .left>.tab:hover{color:#f1e6d4;cursor:pointer}.titlebar .main .left>.tab:active,.titlebar .main .left>.tab:focus{color:#c89b3c;cursor:pointer}.titlebar .main .left>.tab.active{pointer-events:none;color:#f1e6d4}.titlebar .main .left>.tab.active::after{position:absolute;content:"";width:4px;height:4px;bottom:-4px;left:0;right:0;margin:0 auto;border:1px solid #cdbe91;border-color:transparent #cdbe91 #cdbe91 transparent;transform:rotate(45deg)}.titlebar .main .left>.tab.disabled{pointer-events:none;color:rgba(135,134,131,0.8)}.titlebar .main .left>.tab div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.titlebar .main .right{flex:1 0 auto;display:flex;position:relative;margin:0 35px;align-items:center}.titlebar .main .right .iconbutton,.titlebar .main .right .btn{margin-left:11px}.titlebar .main .right .ap,.titlebar .main .right .account{flex:1 0 auto;font:bold 15px/80px Alegreya SC;letter-spacing:0.1em;margin:0 11px 0 35px;text-transform:uppercase;color:#a19b8f;position:relative}.titlebar .main .right .menu-button{flex:1 0 auto;font:24px/80px Material;width:80px;text-align:center;display:none;color:#f1e6d4}#toolbar{bottom:2px;display:flex;justify-content:center;position:fixed;left:0;padding:0;width:100%;pointer-events:none}#toolbar .toolbar-inner{flex:none;padding:5px;border:1px solid rgba(70,55,20,0.75);background:rgba(0,0,0,0.4);pointer-events:all}#toolbar .toolbar-inner>div:not(:last-child){margin-right:4px}#body>main.center{background:#00070e}#body>main.center div.account-scroll{width:100%}#body>main.center div.account-scroll .-horizontal{display:none}#body>main.center div.account-scroll .-vertical{background:transparent;width:4px;z-index:100}#body>main.center div.account-scroll .-vertical .thumb{background:#1f282d;border-radius:0;width:4px}#body>main.center div.account-scroll section.account{display:flex;justify-content:center;align-items:center;position:relative;min-height:100%;width:100%}#body>main.center div.account-scroll section.account .account-inner{padding:33px 22px;text-align:center;width:320px;background:rgba(1,10,19,0.3);border-width:1px 0;border-style:solid;border-color:rgba(120,90,40,0.5);position:relative;box-shadow:0 0 60px rgba(0,0,0,0.5)}#body>main.center div.account-scroll section.account .account-inner:before,#body>main.center div.account-scroll section.account .account-inner:after{position:absolute;display:block;content:"";width:-webkit-calc(100% - 10px);width:calc(100% - 10px);height:2px;left:4px;background:#785a28}#body>main.center div.account-scroll section.account .account-inner:before{top:-5px}#body>main.center div.account-scroll section.account .account-inner:after{bottom:-5px}#body>main.center div.account-scroll section.account .account-inner h2.header{text-align:center;margin-bottom:44px}#body>main.center div.account-scroll section.account .account-inner .textfield{margin:12px 11px 0;text-align:center}#body>main.center div.account-scroll section.account .account-inner .textfield input,#body>main.center div.account-scroll section.account .account-inner .textfield textarea{text-align:center}#body>main.center div.account-scroll section.account .account-inner .btn{margin:28px 11px 0}#body>main.center div.account-scroll section.account .account-inner .btn+div:not(.btn){margin-top:38px}#body>main.center div.account-scroll section.account .account-inner .btn+div.btn{margin-top:11px}#body>main.center div.account-scroll section.account .account-inner p{margin:28px 11px 0;font-size:11px;line-height:20px;color:#a19b8f}#body>main.center div.account-scroll section.account .account-inner p:first-child{margin-top:0;margin-bottom:28px}#body>main.center div.account-scroll section.account .account-inner p .link{color:#015175;display:block;letter-spacing:0.03em}#body>main.center div.account-scroll section.account .account-inner p .link:hover{color:#3685a7;cursor:pointer}#body>main section#about .page .scroll-inner{padding-bottom:22px}#body>main section#about .page .scroll-inner .third-party-software{font-size:12px;line-height:normal;margin-top:10px}#body>main section#account .page .scroll-inner{padding-bottom:22px}#body>main section#account .page .scroll-inner>div.padding{height:22px}#body>main section#account .page .scroll-inner>.btn{margin-top:20px}#body>main section#attribute .page::before{position:absolute;width:-webkit-calc(100% - 70px);width:calc(100% - 70px);height:1px;content:"";background:#3c3732;top:0;left:35px}#body>main section#attribute .scroll-inner{flex-wrap:wrap;flex-direction:column;align-items:center}#body>main section#attribute .scroll-inner .attr{margin:10px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;flex:none}#body>main section#attribute .scroll-inner .attr>.short{font:bold 14px/28px Alegreya;color:#f1e6d4;letter-spacing:0.05em;text-transform:uppercase;text-align:center}#body>main section#attribute .scroll-inner .attr>.value{border:2px solid transparent;padding:2px;background:#0d141c}#body>main section#attribute .scroll-inner .attr>.value>div{border:1px solid #3c3c41;padding:1px}#body>main section#attribute .scroll-inner .attr>.value>div>div{height:45px;width:45px;text-align:center;font:bold 28px/45px Alegreya Sans;color:#f1e6d4;letter-spacing:0.05em;text-transform:uppercase;background:#010a13;overflow:hidden}#body>main section#attribute .scroll-inner .attr>.iconbutton{margin-top:5px}#body>main section#attribute .scroll-inner .attr.ATTR_1>.value{border-color:#aa1b32}#body>main section#attribute .scroll-inner .attr.ATTR_2>.value{border-color:#6b4497}#body>main section#attribute .scroll-inner .attr.ATTR_3>.value{border-color:#06a341}#body>main section#attribute .scroll-inner .attr.ATTR_4>.value{border-color:#3c3c41}#body>main section#attribute .scroll-inner .attr.ATTR_5>.value{border-color:#aea000}#body>main section#attribute .scroll-inner .attr.ATTR_6>.value{border-color:#005177}#body>main section#attribute .scroll-inner .attr.ATTR_7>.value{border-color:#d1c6a4}#body>main section#attribute .scroll-inner .attr.ATTR_8>.value{border-color:#ac6000}#body>main section#attribute .scroll-inner>.counter{margin-top:10px;text-align:center}#body>main section#attribute .scroll-inner>.main,#body>main section#attribute .scroll-inner>.calculated{display:flex;flex-wrap:wrap;justify-content:center}#body>main section#attribute .scroll-inner>.main{padding-bottom:16px;display:flex;flex-wrap:wrap;justify-content:center}#body>main section#attribute .scroll-inner>.calculated .value{border-color:#010a13}#herocreation .modal-container{width:330px}#body>main section#herolist .page>.list ul{margin:0;padding:1px 0;list-style:none}#body>main section#herolist .page>.list ul li{position:relative;padding:11px;display:flex;align-items:center}#body>main section#herolist .page>.list ul li>svg{position:absolute;top:7px;left:7px;-webkit-filter:drop-shadow(0 0 2px #000);filter:drop-shadow(0 0 2px #000);z-index:2;visibility:hidden}#body>main section#herolist .page>.list ul li>svg .progress-arc--fg{stroke:#8f52cc}#body>main section#herolist .page>.list ul li>.el{z-index:1;flex:none;height:55px;width:55px}#body>main section#herolist .page>.list ul li>.el>div{height:51px;width:51px;border-radius:50%}#body>main section#herolist .page>.list ul li>.el>div.overlay{position:absolute;visibility:hidden;background:rgba(0,0,0,0.75)}#body>main section#herolist .page>.list ul li>.el>div.overlay h2{text-align:center;line-height:51px;font-size:21px}#body>main section#herolist .page>.list ul li>.main{flex:1 1 100%;margin-left:16px}#body>main section#herolist .page>.list ul li .base-values{display:flex}#body>main section#herolist .page>.list ul li .base-values>div:not(:first-child){margin-left:11px}#body>main section#herolist .page>.list ul li:not(:first-child){border-top:1px solid rgba(255,255,255,0.075)}#body>main section#herolist .page>.list ul li:hover>svg,#body>main section#herolist .page>.list ul li:hover>.el>div.overlay{visibility:visible}#body>main section#herolist .page>.list ul li>.btn.primary{min-width:140px}#body>main section#master::before{position:absolute;width:-webkit-calc(100% - 70px);width:calc(100% - 70px);height:1px;content:"";background:#3c3732;top:80px;left:35px}#body>main section#master .page#ingame{flex-direction:column}#body>main section#master .page#ingame .header-controls{flex:1 0 auto;margin:10px 0 0;padding:0 35px;width:100%;display:flex;align-items:center;justify-content:flex-end}#body>main section#master .page#ingame .header-controls .online-link{margin-right:33px;flex:1 1 100%;display:flex;align-items:center;justify-content:flex-start}#body>main section#master .page#ingame .header-controls .online-link>.textfield{flex:1 1 auto;max-width:280px;width:auto;margin:0}#body>main section#master .page#ingame .header-controls .online-link>.btn{margin-left:22px;flex:none}#body>main section#master .page#ingame .header-controls>div:not(:last-child):not(.online-link){margin-right:13px;flex:none}#body>main section#master .page#ingame .ingame-content{flex:1 1 100%;display:flex;overflow:hidden}#body>main section#master .page#ingame .ingame-content .textfield input,#body>main section#master .page#ingame .ingame-content .textfield textarea{background:rgba(17,22,28,0.65)}#body>main section#master .page#ingame .ingame-content .textfield input:focus,#body>main section#master .page#ingame .ingame-content .textfield input:active,#body>main section#master .page#ingame .ingame-content .textfield textarea:focus,#body>main section#master .page#ingame .ingame-content .textfield textarea:active{background:linear-gradient(to bottom, rgba(17,22,28,0.65) 0%, rgba(28,35,40,0.65) 100%)}#body>main section#master .page#ingame .ingame-content .-horizontal{display:block}#body>main section#master .page#ingame .ingame-table{padding-top:35px;flex:none;display:flex;position:relative}#body>main section#master .page#ingame .ingame-table.hide-deac tr.deac,#body>main section#master .page#ingame .ingame-table.hide-enemies tr.enemy{display:none}#body>main section#master .page#ingame .ingame-table table{padding:0;margin:0;border-collapse:collapse}#body>main section#master .page#ingame .ingame-table table tr{border-bottom:1px solid rgba(120,90,40,0.4);position:relative}#body>main section#master .page#ingame .ingame-table table tr td{padding:0;text-align:center}#body>main section#master .page#ingame .ingame-table table thead tr{height:28px}#body>main section#master .page#ingame .ingame-table table thead tr td{font:500 12px/27px "Alegreya Sans";color:rgba(91,90,86,0.7)}#body>main section#master .page#ingame .ingame-table table tbody tr{height:44px}#body>main section#master .page#ingame .ingame-table table tbody tr.deac td{opacity:0.4}#body>main section#master .page#ingame .slidein-backdrop .slidein{height:397px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content{height:100%}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:center;padding:20px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div{width:33.3333%;padding:0 5px;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-main>div{width:50%;padding:0 5px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-health{padding:0 5px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-health>div{width:50%;padding:0 5px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-options{display:block}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-options .btn{margin:5px 5px 0 0}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-options .textfield{width:100%}#body>main section#master .page#ingame .ingame-controls{flex:1 0 auto;width:200px;margin-left:35px;position:relative}#body>main section#master .page#ingame .ingame-controls .rounds{width:200px;height:200px;text-align:center;text-transform:lowercase;position:relative}#body>main section#master .page#ingame .ingame-controls .rounds .tag{font:18px/24px Alegreya SC;letter-spacing:0.05em;color:#a19b8f;padding-top:35px}#body>main section#master .page#ingame .ingame-controls .rounds .phase{font:60px/60px Alegreya SC;letter-spacing:0.05em;color:#f1e6d4}#body>main section#master .page#ingame .ingame-controls .rounds .round{font:18px/24px Alegreya SC;letter-spacing:0.05em;color:#a19b8f;padding-top:11px}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase{left:-10px}#body>main section#master .page#ingame .ingame-controls .rounds .next-phase{right:-10px}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase,#body>main section#master .page#ingame .ingame-controls .rounds .next-phase{top:75px;position:absolute;font:32px/44px Material;text-align:center;width:44px;color:#785a28;border-radius:50%}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase:hover,#body>main section#master .page#ingame .ingame-controls .rounds .next-phase:hover{color:#f1e6d4;cursor:pointer;text-shadow:0 0 2px 4px black;background:rgba(91,90,86,0.2)}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase.disabled,#body>main section#master .page#ingame .ingame-controls .rounds .next-phase.disabled{pointer-events:none;opacity:0.5}#body>main section#master .page#ingame .ingame-controls .resets{display:flex;align-items:center;justify-content:center}#body>main section#master .page#ingame .ingame-controls .resets>div:not(:last-child){margin-right:13px}#body>main section#master .page#ingame .ingame-controls .options{margin-top:13px}#body>main section#master .page#ingame .ingame-table .ingame-table-center{flex:1 1 100%;position:relative;overflow:hidden}#body>main section#master .page#ingame .ingame-table .ingame-table-center .ingame-table-center-scroll{overflow-x:scroll;overflow-y:hidden;height:-webkit-calc(100% + 17px);height:calc(100% + 17px)}#body>main section#master .page#ingame .ingame-table .ingame-table-health{flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-health table{width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td{position:relative;width:25%}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar{height:8px;width:90px;margin:4px 8px;padding:1px;display:block;background:linear-gradient(to bottom, #785a28 0%, #463714 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-inner{height:6px;position:relative}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-bg,#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-fg{height:6px}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-bg{border:1px solid #242328;background:#242328;width:100%;left:0}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-fg{transition:width 0.45s cubic-bezier(0.23, 1, 0.32, 1);background:#242328;right:0;position:absolute}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar:not(.active)>.bar-fg{width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.no-le{border:1px solid rgba(91,90,86,0.3);background:none}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.no-le .bar-bg,#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.no-le .bar-fg{border-color:transparent;background:none}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.active .bar-bg{background:linear-gradient(to right, #aa1805 0%, #cc4c1f 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-au.active .bar-bg{background:linear-gradient(to right, #5eaa05 0%, #7fc80c 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-ae.active .bar-bg{background:linear-gradient(to right, #0596aa 0%, #0cc8c6 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-ke.active .bar-bg{background:linear-gradient(to right, #aa6a05 0%, #c8910c 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-ini{margin-right:8px;flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table{width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table tr td{width:44px}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table tr td>div{width:34px;height:34px;margin:0 5px;position:relative}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table tr td>div.indicator{border:1px solid rgba(120,90,40,0.6);background:rgba(0,0,0,0.4);color:#f1e6d4;font:24px/28px Alegreya SC}#body>main section#master .page#ingame .ingame-table .ingame-table-left{padding-left:7px;margin-right:8px;flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-left tr:after{display:block;position:absolute;width:3px;height:3px;content:"";border:1px solid rgba(120,90,40,0.4);left:-5.5px;bottom:-2px;transform:rotate(45deg)}#body>main section#master .page#ingame .ingame-table .ingame-table-left table thead tr td.ib{padding-left:18px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table thead tr td.init{padding:0 0 0 6px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.ib{font:500 11px/43px "Alegreya Sans";padding-left:15px;color:#878683}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar{padding:6px 0 6px 6px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer{height:30px;width:30px;border-radius:50%;background:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);box-shadow:0 0 4px black;position:relative}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer .avatar-inner{width:26px;height:26px;margin:2px;border-radius:50%;background:#090f15;box-shadow:0 0 4px black inset;overflow:hidden;position:absolute}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer .avatar-inner span.init{font:500 13px/26px "Alegreya Sans";color:#f1e6d4;width:26px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer .avatar-inner img{min-height:100%;min-width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.name{font:700 14px/43px "Alegreya SC";color:#f1e6d4;letter-spacing:0.05em;padding:0 22px 0 13px;text-align:left}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-v td.avatar div.avatar-outer{background:linear-gradient(to bottom, #689cc4 0%, #3678aa 10%, #306b99 76%, #244c6b 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-v td.name{color:#4987b6}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-f td.avatar div.avatar-outer{background:linear-gradient(to bottom, #c16876 0%, #a83547 10%, #993040 76%, #68232d 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-f td.name{color:#e4213f}#body>main section#master .page#ingame .ingame-table .ingame-table-right{padding-right:7px;margin-left:8px;flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-right tr:after{display:block;position:absolute;width:3px;height:3px;content:"";border:1px solid rgba(120,90,40,0.4);right:-5.5px;bottom:-2px;transform:rotate(45deg)}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tr td.au,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tr td.a,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tr td.fa{padding-left:7px}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.au div,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.a div,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.fa div{font-size:15px;color:#878683;line-height:32px;width:32px;border-radius:50%}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.au div:hover,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.a div:hover,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.fa div:hover{color:#f1e6d4;cursor:pointer;background:rgba(91,90,86,0.2)}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.edit{padding-left:16px;padding-right:9px}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.edit div{font:18px/36px Material;text-align:center;width:36px;color:#ccbe91;border-radius:50%}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.edit div:hover{color:#f1e6d4;cursor:pointer;background:rgba(91,90,86,0.2)}#body>main section#profile .page#overview .scroll-inner{padding-bottom:22px}#body>main section#profile .page#overview .title-wrapper{margin-top:11px;display:flex;align-items:center}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper{flex:1 0 auto;height:150px;width:150px}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:hover{cursor:pointer}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:hover>div.avatar{box-shadow:0 0 0 71px rgba(0,0,0,0.85) inset}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:hover>div.avatar::after{position:absolute;top:39px;left:39px;content:"\E2C6";width:64px;font:64px/64px Material;color:#f1e6d4;text-align:center}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:not(.no-avatar){padding:4px;background:#785a28}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:not(.no-avatar)>div.avatar::after{top:43px;left:43px}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper.no-avatar{border-width:4px}#body>main section#profile .page#overview .title-wrapper .text-wrapper{flex:1 1 100%;margin-left:26px}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1{margin:0;font:400 38px/38px Alegreya Sans;letter-spacing:0.025em;color:#f1e6d4}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1,#body>main section#profile .page#overview .title-wrapper .text-wrapper>div.change-name{display:flex;height:38px;align-items:center}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1>div.textfield,#body>main section#profile .page#overview .title-wrapper .text-wrapper>div.change-name>div.textfield{margin:0}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1>div.iconbutton,#body>main section#profile .page#overview .title-wrapper .text-wrapper>div.change-name>div.iconbutton{margin-left:11px;letter-spacing:0}#body>main section#profile .page#overview .title-wrapper .text-wrapper>div:not(.change-name){margin:4px 0 0}#profileavatarchange .avatar-wrapper{height:64px;width:64px}#body>main section#rcp{background-image:url("images/rcp.png");background-color:#010c0a}#body>main section#rcp .page>.list ul{margin:0;padding:1px 0;list-style:none}#body>main section#rcp .page>.list ul li{position:relative;padding:11px;display:flex;align-items:center}#body>main section#rcp .page>.list ul li>.left{flex:1 1 100%}#body>main section#rcp .page>.list ul li>.right{flex:0 0 auto;margin-left:11px}#body>main section#rcp .page>.list ul li h2{line-height:22px;margin-bottom:5px}#body>main section#rcp .page>.list ul li .base-values{display:flex}#body>main section#rcp .page>.list ul li .base-values>div:not(:first-child){margin-left:11px}#body>main section#rcp .page>.list ul li:not(:first-child){border-top:1px solid rgba(255,255,255,0.075)}#body>main section#rcp .page>.list ul li.active .btn{min-width:140px}#body>main section#rcp .page>.list.professions li h2{padding:5px 0 0}#body>main section#rcp .page>.list.professions li h3{font:500 13px/15px Alegreya Sans SC;color:#878683;text-transform:uppercase;margin-top:0;margin-bottom:7px}#body>main section#rcp .page>.list .iconbutton{border-radius:50%;background:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);padding:2px;overflow:hidden}#body>main section#rcp .page>.list .iconbutton>div{border-radius:50%;font-size:16px;line-height:28px;background:#1e282d}#body>main section#rcp .page>.list .iconbutton:hover{background:linear-gradient(to bottom, #f0e6d2 0%, #c89b3c 100%)}#body>main section#rcp .page>.list .iconbutton:hover>div{background-image:linear-gradient(to bottom, rgba(200,155,60,0) 50%, rgba(200,155,60,0.25) 100%);color:#f0e6d2}#body>main section#rcp .page#professions .spec>div{display:flex}#body>main section#rcp .page#professions .spec>div>div:last-child:not(:first-child){margin-left:11px}#body>main section#rcp .page#professions .list.curses>div{display:flex;align-items:center}#body>main section#rcp .page#professions .list.curses>div:hover{background:#1e2328}#body>main section#rcp .page#professions .list.curses>div>.checkbox{flex:1 1 100%}#body>main section#rcp .page#professions .list.curses>div>.checkbox:hover{background:none}#body>main section#rcp .page#professions .list.curses>div>span{margin:0 11px}#body>main section#rcp .page#professions .list.curses>div>.btn{padding:0 14px 3px;min-width:auto;font-size:16px;flex:none;margin-left:4px}#body>main section#rcp .page#professions .list.lang_lit>h4>span.error{color:#aa1b32}#body>main section#rcp .page#professions .list.lang_lit>div{display:flex;align-items:center}#body>main section#rcp .page#professions .list.lang_lit>div:hover{background:#1e2328}#body>main section#rcp .page#professions .list.lang_lit>div>.checkbox{flex:1 1 100%}#body>main section#rcp .page#professions .list.lang_lit>div>.checkbox:hover{background:none}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown{margin:0;line-height:26px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown>div>div.value{height:28px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown>div>div.value::before{top:9px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown>div>div.value::after{bottom:9px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown.bottom>div>.down{top:28px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown.top>div>.down{bottom:28px}#body>main section#rcp .page#professions .scroll-inner>.btn.primary{margin-top:20px}#sheets .sheet-wrapper .sheet.inventory .item-categories{margin-top:0;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:space-between;height:100%;width:calc(100% + 20px)}#sheets .sheet-wrapper .sheet.inventory .item-categories>div{margin:20px 0 0 !important;width:50%;padding-right:20px;padding-bottom:40px;border-spacing:0}#sheets .sheet-wrapper .sheet.inventory .item-categories>div>h3{line-height:18px}#sheets .sheet-wrapper .sheet.inventory .item-categories>div>table{margin:0 !important}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.all-items{flex:0 100%}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.provisions{min-height:200px}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.clothes{min-height:120px}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.connections{flex:1}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.money{flex:none}#sheets .sheet-wrapper .sheet.inventory .pets{flex:none;min-height:120px;margin-top:20px}#sheets .sheet-wrapper .sheet.inventory .inline-table h3{line-height:inherit;display:inline-block}#sheets .sheet-wrapper .sheet.inventory .inline-table tbody td.name{text-transform:none;text-indent:-10px;padding-left:10px !important;padding-right:15px}#sheets .sheet-wrapper .sheet.inventory .inline-table td{height:18px;line-height:18px;vertical-align:bottom}#sheets .sheet-wrapper .sheet.inventory .inline-table td.weight{white-space:nowrap}#sheets .sheet-wrapper .sheet.inventory .inline-table td.charges{width:10px;white-space:nowrap}#sheets .sheet-wrapper .sheet.chants>.header .attributes>div:nth-child(9){width:110px}#sheets .sheet-wrapper .sheet.chants>.header .attributes>div:nth-child(9)>.value>div>div{width:100%}#sheets .sheet-wrapper .sheet.chants>.header .attributes>div:nth-child(10){width:350px;margin-right:0}#sheets .sheet-wrapper .sheet.chants>div:not(.head){height:auto;width:100%}#sheets .sheet-wrapper .sheet.chants>div:not(.head).miracles>div{display:flex}#sheets .sheet-wrapper .sheet.chants>div:not(.head).miracles>div>div{width:50%}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .inline-table{white-space:nowrap}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .inline-table td:first-child{width:10px;padding-right:15px}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .inline-table td:not(.rank){height:18px;line-height:18px;font-size:9px}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .rank span:first-child{font-weight:bold}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .rank span:last-child{padding-left:5px;font-size:8px;letter-spacing:0.04em}#sheets .sheet-wrapper .sheet.main>.upper{flex:none}#sheets .sheet-wrapper .sheet.main>.upper>.info{flex:1 1 100%;display:flex;flex-wrap:wrap;align-content:flex-start;overflow:hidden}#sheets .sheet-wrapper .sheet.main>.upper>.info .name,#sheets .sheet-wrapper .sheet.main>.upper>.info .characteristics,#sheets .sheet-wrapper .sheet.main>.upper>.info .other{width:100%}#sheets .sheet-wrapper .sheet.main>.upper>.info .family,#sheets .sheet-wrapper .sheet.main>.upper>.info .placeofbirth,#sheets .sheet-wrapper .sheet.main>.upper>.info .dateofbirth,#sheets .sheet-wrapper .sheet.main>.upper>.info .race,#sheets .sheet-wrapper .sheet.main>.upper>.info .haircolor,#sheets .sheet-wrapper .sheet.main>.upper>.info .eyecolor,#sheets .sheet-wrapper .sheet.main>.upper>.info .culture,#sheets .sheet-wrapper .sheet.main>.upper>.info .profession,#sheets .sheet-wrapper .sheet.main>.upper>.info .title,#sheets .sheet-wrapper .sheet.main>.upper>.info .socialstatus{width:50%}#sheets .sheet-wrapper .sheet.main>.upper>.info .age,#sheets .sheet-wrapper .sheet.main>.upper>.info .gender,#sheets .sheet-wrapper .sheet.main>.upper>.info .size,#sheets .sheet-wrapper .sheet.main>.upper>.info .weight{width:25%}#sheets .sheet-wrapper .sheet.main>.upper>.info .name .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .family .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .dateofbirth .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .race .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .haircolor .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .culture .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .title .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .characteristics .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .other .label{width:80px}#sheets .sheet-wrapper .sheet.main>.upper>.info .placeofbirth .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .age .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .size .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .eyecolor .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .profession .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .socialstatus .label{width:63px}#sheets .sheet-wrapper .sheet.main>.upper>.info .gender .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .weight .label{width:58px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait{flex:none;width:290px;margin-left:10px;display:flex;flex-wrap:wrap}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox{display:flex;height:40px;margin:14px 0 0;width:170px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox.el{width:100%}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox.el .box{width:170px;font-size:20px;font-weight:400}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox.el label{margin-left:0;text-align:center}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox .box{font:bold 24px/40px Alegreya Sans;text-align:center;width:70px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox label{margin-left:10px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait{width:120px;flex-direction:column}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait .box{width:120px;height:148px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait .box .avatar{height:100%;width:100%}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait label{height:30px;line-height:30px}#sheets .sheet-wrapper .sheet.main>.lower{margin-top:22px;flex:1 1 100%}#sheets .sheet-wrapper .sheet.main>.lower>.lists{flex:1 1 100%;display:flex;flex-direction:column}#sheets .sheet-wrapper .sheet.main>.lower>.lists>.textbox{flex:1 0 auto}#sheets .sheet-wrapper .sheet.main>.lower>.lists>.textbox>div{font:400 16px Alegreya Sans;letter-spacing:0;padding-top:8px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated{width:290px;flex:none;margin-top:36px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div.calc-header{margin-top:10px;justify-content:flex-end;height:auto;align-items:flex-end;margin-right:-5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div.calc-header>div{width:34px;font:bold 9px Alegreya Sans;margin-right:5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div{display:flex;justify-content:space-between;margin-bottom:5px;height:54px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.label span{display:block;font:italic 900 9px Alegreya Sans}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.label span.sub{margin-top:6px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values{display:flex;flex-wrap:wrap;width:156px;align-content:flex-start;align-items:flex-start;margin-right:-5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div{height:34px;width:34px;border:1px solid black;font:21px/32px Alegreya Sans;text-align:center;margin-right:5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div:nth-child(4){font-weight:bold}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div.sub{height:17px;line-height:15px;font-size:9px;margin-top:2px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div.blocked{font:24px/32px Material}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div.fate{margin-top:36px}#sheets .sheet-wrapper .sheet.main>.head{padding-bottom:20px;border-bottom:2px solid black;height:172px}#sheets .sheet-wrapper .sheet.main>.head>*{float:left}#sheets .sheet-wrapper .sheet.main>.head .head-left{height:150px;width:150px}#sheets .sheet-wrapper .sheet.main>.head .head-left .portrait{height:100%;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}#sheets .sheet-wrapper .sheet.main>.head .head-left .portrait img{border:4px solid black;max-height:100%;max-width:100%;border-radius:50%}#sheets .sheet-wrapper .sheet.main>.head .head-right{height:150px;width:568px;padding-left:20px;padding-top:15px;line-height:23px;position:relative}#sheets .sheet-wrapper .sheet.main>.head .head-right div.classes h1.name{font:bold 20px/28px Caudex;margin-bottom:10px;letter-spacing:0.05em;text-transform:uppercase}#sheets .sheet-wrapper .sheet.main>.head .head-right div.classes h2.race-culture{font:bold 14px/20px Caudex;letter-spacing:0.05em;margin-bottom:10px}#sheets .sheet-wrapper .sheet.main>.head .head-right div.classes h2.prof{font:bold 14px/20px Caudex;letter-spacing:0.05em}#sheets .sheet-wrapper .sheet.main>.head .head-right div.main-values{text-align:right;padding-top:5px;position:absolute;top:0;right:0}#sheets .sheet-wrapper .sheet.main>.head .head-right div.main-values div.ap>span:not(.level){opacity:0.25}#sheets .sheet-wrapper .sheet.main>.head .head-right div.main-values div.so{padding-top:10px}#sheets .sheet-wrapper .sheet.main>.head .head-right div.qualities{width:100%;float:left;margin-top:10px;display:flex;justify-content:space-between;font:13px/20px "Source Sans Pro"}#sheets .sheet-wrapper .sheet.main>.head .head-right div.qualities .q-available{opacity:0.5}#sheets .sheet-wrapper .sheet.main>.left{margin-top:20px;border-right:2px solid black;width:200px;height:-webkit-calc(100% - 192px);height:calc(100% - 192px);float:left}#sheets .sheet-wrapper .sheet.main>.left .base-stats>div{height:16px}#sheets .sheet-wrapper .sheet.main>.left .base-stats>div>div{float:left}#sheets .sheet-wrapper .sheet.main>.left .base-stats>div>div>span:first-child{display:inline-block;width:30px}#sheets .sheet-wrapper .sheet.main>.left .vt-list,#sheets .sheet-wrapper .sheet.main>.left .nt-list{list-style:none outside none}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li{display:flex}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li>div,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li>div{flex:1 0 auto}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li>div:first-child,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li>div:first-child{width:170px;padding-left:10px;text-indent:-10px}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li>div:last-child,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li>div:last-child{width:28px}#sheets .sheet-wrapper .sheet.main>.right{height:-webkit-calc(100% - 192px);height:calc(100% - 192px);float:right;width:518px;margin-top:20px;padding-left:20px}#sheets .box{border:1px solid black}#sheets .labelbox{display:flex;flex-direction:row;align-items:center}#sheets .labelbox>.box{flex:none}#sheets .labelbox>label{flex:1 1 100%;font:bold 11px Alegreya;display:block}#sheets .plain{display:flex;align-items:center;height:21px}#sheets .plain div.label{font:bold 11px Alegreya;padding-right:7px;flex:none}#sheets .plain div.value{font:400 13px Alegreya Sans;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 100%;padding-right:5px}#sheets{flex-flow:column nowrap}#sheets>.options{margin-bottom:11px}#sheets .scroll-inner{display:flex;flex-flow:column nowrap;align-items:center}#sheets .scroll-inner .sheet{width:21cm;height:29.7cm;background:white;margin-top:30px;text-align:left;padding:1cm;font:11px/16px Alegreya;color:black;letter-spacing:0;display:flex;flex-direction:column}#sheets .scroll-inner .sheet:last-child{margin-bottom:30px}#sheets .scroll-inner .sheet>div{display:flex;justify-content:space-between}#sheets .scroll-inner .sheet h1,#sheets .scroll-inner .sheet h2,#sheets .scroll-inner .sheet h3{color:black;margin:0}#sheets .scroll-inner .sheet h1{font:italic bold 24px/22px Alegreya}#sheets .scroll-inner .sheet h2{font:17px/13px Alegreya SC;text-transform:none;letter-spacing:0}#sheets .scroll-inner .sheet h3{font:bold 16px Alegreya;letter-spacing:0}#sheets .scroll-inner .sheet>.header{margin-bottom:11px;align-items:flex-end;flex:none;height:110px}#sheets .scroll-inner .sheet>.header>.title{flex:1 1 100%;height:50px;display:flex;flex-direction:column;justify-content:center}#sheets .scroll-inner .sheet>.header>.title h1,#sheets .scroll-inner .sheet>.header>.title h2{text-align:center}#sheets .scroll-inner .sheet>.header>.title h2{margin-top:5px}#sheets .scroll-inner .sheet>.header .attributes{flex:none;display:flex;flex-wrap:wrap-reverse;width:475px}#sheets .scroll-inner .sheet>.header .attributes .attr{flex:none;margin:5px 5px 0;position:relative}#sheets .scroll-inner .sheet>.header .attributes .attr>.short{font:bold 10px/14px Alegreya;color:black;letter-spacing:0.05em;text-transform:uppercase;text-align:center;position:absolute;top:0;padding:4px 8px 0}#sheets .scroll-inner .sheet>.header .attributes .attr>.value{border:2px solid transparent;padding:0}#sheets .scroll-inner .sheet>.header .attributes .attr>.value>div{border:1px solid black;padding:0}#sheets .scroll-inner .sheet>.header .attributes .attr>.value>div>div{height:44px;width:44px;text-align:center;font:bold 21px/30px Alegreya Sans;color:black;letter-spacing:0.05em;text-transform:uppercase;background:transparent;overflow:hidden;padding-top:14px}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_1>.value{border-color:red}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_2>.value{border-color:#90c}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_3>.value{border-color:#3c3}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_4>.value{border-color:black}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_5>.value{border-color:yellow}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_6>.value{border-color:blue}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_7>.value{border-color:white}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_8{margin-right:0}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_8>.value{border-color:#f60}#sheets .sheet-wrapper .sheet.spells>.header .attributes>div:nth-child(9){width:110px}#sheets .sheet-wrapper .sheet.spells>.header .attributes>div:nth-child(9)>.value>div>div{width:100%}#sheets .sheet-wrapper .sheet.spells>.header .attributes>div:nth-child(10){width:350px;margin-right:0}#sheets .sheet-wrapper .sheet.spells .inline-table{white-space:nowrap;width:500px}#sheets .sheet-wrapper .sheet.spells .inline-table tr.specs{font-style:italic}#sheets .sheet-wrapper .sheet.spells .inline-table tr.specs td{padding-left:30px !important}#sheets .sheet-wrapper .sheet.spells .inline-table td.se{width:14px}#sheets .sheet-wrapper .sheet.spells .inline-table td.se div{height:10px;width:10px;border:1px solid black;border-radius:5px}#sheets .sheet-wrapper .sheet.spells .inline-table td.name{text-transform:none}#sheets .sheet-wrapper .sheet.spells .inline-table td.name span:last-child{float:right;padding-right:15px}#sheets .sheet-wrapper .sheet.spells .inline-table td.test,#sheets .sheet-wrapper .sheet.spells .inline-table td.skt,#sheets .sheet-wrapper .sheet.spells .inline-table td.zfw,#sheets .sheet-wrapper .sheet.spells .inline-table td.merk,#sheets .sheet-wrapper .sheet.spells .inline-table td.rep{padding-right:15px;width:15px}#sheets .sheet-wrapper .sheet.spells .inline-table td.zfw{width:50px}#sheets .sheet-wrapper .sheet.spells .inline-table td.page{width:1px}#sheets .sheet-wrapper .sheet.talents{position:relative}#sheets .sheet-wrapper .sheet.talents .inline-table thead>tr>td:first-child>span{padding-left:5px}#sheets .sheet-wrapper .sheet.talents .inline-table tbody{font-size:9px}#sheets .sheet-wrapper .sheet.talents .inline-table h3{line-height:inherit;display:inline-block}#sheets .sheet-wrapper .sheet.talents .inline-table tr.specs{font-style:italic}#sheets .sheet-wrapper .sheet.talents .inline-table tr.specs td{padding-left:30px !important}#sheets .sheet-wrapper .sheet.talents .inline-table td{height:18px;line-height:18px}#sheets .sheet-wrapper .sheet.talents .inline-table td.se{width:14px}#sheets .sheet-wrapper .sheet.talents .inline-table td.se div{height:8px;width:8px;border:1px solid black;border-radius:5px}#sheets .sheet-wrapper .sheet.talents .inline-table td.name{text-transform:none}#sheets .sheet-wrapper .sheet.talents .inline-table td.name span:last-child{float:right;padding-right:15px}#sheets .sheet-wrapper .sheet.talents .inline-table td.skt{width:18px}#sheets .sheet-wrapper .sheet.talents .inline-table td.be{width:30px}#sheets .sheet-wrapper .sheet.talents .inline-table td.at,#sheets .sheet-wrapper .sheet.talents .inline-table td.pa{width:24px}#sheets .sheet-wrapper .sheet.talents .inline-table td.taw{width:40px}#sheets .sheet-wrapper .sheet.talents .skill-categories{margin-top:0;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:space-between;height:calc(100% - 40px);width:calc(100% + 20px)}#sheets .sheet-wrapper .sheet.talents .skill-categories>*{margin:20px 0 0 !important;width:50%;padding-right:20px;padding-bottom:40px;border-spacing:0}#sheets .sheet-wrapper .sheet.talents .skill-categories>div{margin-top:20px}#sheets .sheet-wrapper .sheet.talents .skill-categories>div>h3{line-height:18px}#sheets .sheet-wrapper .sheet.talents .left{float:left;padding-right:10px}#sheets .sheet-wrapper .sheet.talents .left>table:nth-child(2){flex:0.2}#sheets .sheet-wrapper .sheet.talents .right{float:right;padding-left:10px}#sheets .sheet-wrapper .sheet.talents .right>table:last-child{flex:none}#body>main>section{padding-top:80px;z-index:0;overflow:hidden;background-image:url("images/background.jpg");background-position:center center;background-size:cover;color:#010a13;display:flex;flex-direction:column}#body>main>section>.subtabs{flex:none}#body>main>section>.page{flex:1 1 auto;padding:11px 0 3px;font:14px/22px Alegreya Sans;letter-spacing:0.025em;color:#878683;display:flex;flex-wrap:nowrap;position:relative;overflow:hidden;height:100%}#body>main>section>.page .scroll{flex:1 1 100%}#body>main>section>.page .scroll .scroll-inner{padding:0 35px;display:flex;flex-wrap:wrap}#body>main>section>.page .scroll .scroll-inner>div:not(.btn):not(.iconbutton):not(.textfield):not(.dropdown),#body>main>section>.page .scroll .scroll-inner>h2,#body>main>section>.page .scroll .scroll-inner>h3,#body>main>section>.page .scroll .scroll-inner>h4,#body>main>section>.page .scroll .scroll-inner>ul{flex:1 0 auto;width:100%}#body>main>section>.page .scroll .scroll-inner .textfield+.iconbutton,#body>main>section>.page .scroll .scroll-inner .dropdown+.iconbutton{margin:10px 0 10px 11px}#body>main>section>.page>.options{flex:1 0 auto;width:200px;margin-left:35px}#body>main>section>.page>.options .radiobutton-group,#body>main>section>.page>.options .btn{width:100%}#body>main>section>.page>.options .btn{margin-top:10px}#body>main>section>.page .list table{width:100%;white-space:nowrap}#body>main>section>.page .list table td{padding:5px 5px 5px 11px}#body>main>section>.page .list table td.name{width:100%}#body>main>section>.page .list table td.name,#body>main>section>.page .list table td.fw{color:#f0e6d2}#body>main>section>.page .list table thead{font:bold 13px/22px Alegreya SC}#body>main>section>.page .list table thead tr td{border-bottom:1px solid rgba(255,255,255,0.075)}#body>main>section>.page .list table tbody tr:not(:last-child) td{height:36px;border-bottom:1px solid rgba(255,255,255,0.075)}#body>main>section>.page .list table tbody tr:hover{background:rgba(255,255,255,0.025)}#body>main>section>.page .list table tbody tr td{height:36px}#body>main>section>.page .list table tbody tr td.name h2,#body>main>section>.page .list table tbody tr td.fw{font:500 15px/15px Alegreya Sans;text-transform:none;color:#f0e6d2}#body>main>section>.page .list table tbody tr td.check,#body>main>section>.page .list table tbody tr td.skt{font:13px/13px Alegreya SC}#body>main>section>.page .list table tbody tr td.inc{font-weight:500;display:flex;justify-content:flex-end;align-items:center}#body>main>section>.page .list table tbody tr td.inc .btn{padding:0 14px 3px;min-width:auto;font-size:16px;flex:none}#body>main>section>.page .list table tbody tr td.inc .btn:nth-child(2){margin-left:4px}*{box-sizing:border-box;-ms-overflow-style:none}*:not(input):not(textarea){-moz-user-select:none;-o-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}html,body,#bodywrapper,#body{-webkit-touch-callout:none;-ms-scroll-translation:vertical-to-horizontal;-webkit-tap-highlight-color:transparent;touch-action:none;cursor:default;overflow:hidden;width:100%;height:100%;margin:0;padding:0;position:relative}#body{display:flex;background:#000;font:14px/23px Alegreya;position:relative}#body.logged-out{width:-webkit-calc(100% + 207px);width:calc(100% + 207px)}#body.logged-out .pane-wrapper{pointer-events:none}#body.logged-out .pane-wrapper .pane-externallinks-wrapper{opacity:0}#body.fullscreen{width:-webkit-calc(100% + 222px);width:calc(100% + 222px)}#body>div.wait{position:fixed;height:100%;width:100%;top:0;bottom:0;left:0;right:0;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:9000}#body>div.wait div{margin:auto;position:relative;border-top:4px solid rgba(75,227,222,0.2);border-right:4px solid rgba(75,227,222,0.2);border-bottom:4px solid rgba(75,227,222,0.2);border-left:4px solid #4be3de;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 0.8s infinite linear;animation:load8 0.8s infinite linear}#body>div.wait div,#body>div.wait div:after{border-radius:50%;width:44px;height:44px}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}a{color:#0080b9}a:hover{color:#52abd1}p{margin:10px 0 0}p:first-child{margin:0}p.featured{font-weight:500;color:#f1e6d4}h2,h3,h4,h5,h6{font-weight:normal;text-align:left;text-transform:none;padding:0;color:#f1e6d4;font:bold 18px/28px Alegreya;margin:20px 0 0;letter-spacing:0.05em}h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0 !important}h2{text-transform:uppercase}h4{font-size:bold 14px/22px Alegreya;color:#878683;letter-spacing:0.025em;text-transform:uppercase}div.space{height:30px}.rotate-180{transform:rotate(180deg)}.columns{margin:0 -15px;width:-webkit-calc(100% + 30px);width:calc(100% + 30px);display:flex;flex-wrap:wrap;justify-content:flex-start;padding-bottom:30px}.columns>*{text-align:justify;min-width:430px;flex:1 1 0;padding:40px 15px 0}.columns>.h3{padding-top:30px}.columns>.h4{padding-top:20px}.columns>.default-1-1{flex:1 100%}.columns>.default-1-2{flex:1 50%}.default-1-1{width:100%}.default-1-2{width:50%}.default-1-3{width:33.3333%}.default-1-4{width:25%}.default-1-5{width:20%}.default-1-6{width:16.6666%}.default-5-6{width:83.3333%}.default-1-9{width:11.11111%}table{border-collapse:collapse;border-spacing:0;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;table-layout:auto}.gm-test{width:100px;height:100px;position:absolute;top:-9999px;overflow:scroll;-ms-overflow-style:scrollbar}.gm-scrollbar-disable-selection{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gm-prevented{-webkit-overflow-scrolling:touch}.gm-prevented .gm-scrollbar{display:none}.gm-scrollbar-container{position:relative;overflow:hidden !important;width:100%;height:100%}.gm-scrollbar-container .gm-scroll-view{width:calc(100% + 17px) !important;height:100%;overflow:scroll;-webkit-overflow-scrolling:touch}.gm-scrollbar-container.gm-autoshow .gm-scrollbar{opacity:0;transition:opacity 120ms ease-out}.gm-scrollbar-container.gm-autoshow:hover .gm-scrollbar,.gm-scrollbar-container.gm-autoshow:focus .gm-scrollbar{opacity:1;transition:opacity 340ms ease-out}.gm-scrollbar{position:absolute;z-index:20;background:transparent}.gm-scrollbar.-vertical{width:5px;right:3px;top:0;bottom:0}.gm-scrollbar.-vertical .thumb{width:100%}.gm-scrollbar.-horizontal{height:5px;bottom:0;left:0;right:0;display:none}.gm-scrollbar.-horizontal .thumb{height:100%}.gm-scrollbar .thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:2.5px;background-color:#785a28}.gm-scrollbar .thumb:hover{background-color:#cdbe91}.gm-scrollbar .thumb:active{background-color:#463714}hr{border:0}hr.gold{box-shadow:0 1px 0px rgba(145,130,82,0.75) inset,0 0 2px #000;background:#4e4b38}hr.blue{background:#151f20}hr.horizontal{height:2px;width:100%;margin:10px 0 0}hr.vertical{width:2px;height:100%} +#body>main section#disadv .page table tbody tr td,#body>main section#skills .page#specialabilities table tbody tr td{height:42px}#body>main section#disadv .page table tbody tr td.name>div,#body>main section#skills .page#specialabilities table tbody tr td.name>div{display:flex;align-items:center}#body>main section#disadv .page table tbody tr td.name>div>h2,#body>main section#skills .page#specialabilities table tbody tr td.name>div>h2,#body>main section#disadv .page table tbody tr td.name>div>div,#body>main section#skills .page#specialabilities table tbody tr td.name>div>div{flex:none;margin:0}#body>main section#disadv .page table tbody tr td.name>div>div,#body>main section#skills .page#specialabilities table tbody tr td.name>div>div{margin-left:14px}#body>main section#disadv .page table tbody tr td.name>div>div.tiers,#body>main section#skills .page#specialabilities table tbody tr td.name>div>div.tiers{width:65px}#body>main,#body>main>section{width:100%;height:100%;position:relative}#body>main section#disadv .page table tbody tr.imp td{color:#c89c3d}#body>main section#disadv .page table tbody tr.imp td.name h2,#body>main section#disadv .page table tbody tr.imp td.fw{color:#fabe0a}#body>main section#disadv .page table tbody tr.typ td,#body>main section#skills .page#talents table tbody tr.typ td{color:#005177}#body>main section#disadv .page table tbody tr.typ td.name h2,#body>main section#skills .page#talents table tbody tr.typ td.name h2,#body>main section#disadv .page table tbody tr.typ td.fw,#body>main section#skills .page#talents table tbody tr.typ td.fw{color:#0acbe6}#body>main section#disadv .page table tbody tr.untyp td,#body>main section#skills .page#talents table tbody tr.untyp td{color:#aa1b32}#body>main section#disadv .page table tbody tr.untyp td.name h2,#body>main section#skills .page#talents table tbody tr.untyp td.name h2,#body>main section#disadv .page table tbody tr.untyp td.fw,#body>main section#skills .page#talents table tbody tr.untyp td.fw{color:#ff2345}#body>main section#herolist .page>.list ul li:hover::after,#body>main section#rcp .page>.list ul li.active::after{position:absolute;left:-11px;top:-1px;width:-webkit-calc(100% + 5px);width:calc(100% + 5px);height:100%;content:"";border-image:linear-gradient(to right, #fabe0a 0%, rgba(250,190,10,0) 100%);border-image-slice:1;border-width:1px 0 1px 6px;border-style:solid;border-color:transparent;pointer-events:none}@font-face{font-family:"C5AUI";font-style:normal;font-weight:normal;src:url("fonts/Cha5App UI/Cha5App-UI.ttf") format("truetype")}@font-face{font-family:"Material";font-style:normal;font-weight:normal;src:url("fonts/Material/Material.ttf") format("truetype")}@font-face{font-family:"Alegreya";font-style:normal;font-weight:700;src:url("fonts/Alegreya-Bold.ttf") format("truetype")}@font-face{font-family:"Alegreya";font-style:italic;font-weight:700;src:url("fonts/Alegreya-BoldItalic.ttf") format("truetype")}@font-face{font-family:"Alegreya";font-style:normal;font-weight:400;src:url("fonts/Alegreya-Regular.ttf") format("truetype")}@font-face{font-family:"Alegreya SC";font-style:normal;font-weight:700;src:url("fonts/AlegreyaSC-Bold.ttf") format("truetype")}@font-face{font-family:"Alegreya SC";font-style:normal;font-weight:400;src:url("fonts/AlegreyaSC-Regular.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:700;src:url("fonts/AlegreyaSans-Bold.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:italic;font-weight:700;src:url("fonts/AlegreyaSans-BoldItalic.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:900;src:url("fonts/AlegreyaSans-ExtraBold.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:italic;font-weight:900;src:url("fonts/AlegreyaSans-ExtraBoldItalic.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:500;src:url("fonts/AlegreyaSans-Medium.ttf") format("truetype")}@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:400;src:url("fonts/AlegreyaSans-Regular.ttf") format("truetype")}@font-face{font-family:"Gentium Basic";font-style:normal;font-weight:400;src:url("fonts/GentiumBasic-Regular.ttf") format("truetype")}@page{size:210mm 297mm;margin:0}@media print{html{width:100%}html,body,#bodywrapper,#body{overflow:visible !important}main .titlebar,main .subtabs{display:none}main section#misc{padding:0 !important;overflow:visible !important;background:white !important}#sheets{padding:0 !important;overflow:visible !important}#sheets .options{display:none}#sheets .sheet-wrapper.scroll.gm-scrollbar-container{overflow:visible !important}#sheets .sheet-wrapper.scroll.gm-scrollbar-container .gm-scroll-view{overflow:visible !important;height:auto !important;width:auto !important}#sheets .sheet-wrapper.scroll.gm-scrollbar-container .gm-scrollbar{display:none !important}#sheets .scroll-inner{padding:0 !important;display:block !important}#sheets .scroll-inner .sheet{display:block !important;margin:0 !important;height:296mm !important;page-break-after:always;overflow:hidden !important}#sheets .scroll-inner .sheet>.header .attributes .attr>.value{border-width:1.25pt !important}#sheets .scroll-inner .sheet>.header .attributes .attr>.value>div{border-width:0.95pt !important}#sheets .scroll-inner .sheet.main>.upper>.ap>div span:first-child{border-width:0.95pt !important}#sheets .scroll-inner .sheet.main>.upper>.portrait .avatar{border-width:0.95pt !important}#sheets .scroll-inner .sheet.main>.lower>.calculated>div>.values>div{border-width:0.95pt !important}}#body>main{flex:1 1 100%}.avatar{background-size:cover;background-repeat:no-repeat;background-position:50%;background-color:black;box-shadow:0 0 1px 1px black inset;border-radius:50%}.avatar-wrapper{background:linear-gradient(to bottom, #9a7830 0%, #6d5024 100%);padding:2px;border-radius:50%;position:relative}.avatar-wrapper>.avatar{height:100%;width:100%}.avatar-wrapper.no-avatar{border:2px solid #2b2f34;padding:0;background:none}.avatar-wrapper.no-avatar>.avatar{box-shadow:none;background:none}.btn,input[type="submit"]{text-align:center;background-color:#1a1a1a;padding:3px 14px 6px;letter-spacing:0.05em;border:2px solid transparent;border-image:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%) 1 1 1 1;display:inline-block;box-shadow:0 0 2px black inset, 0 0 2px black;font:400 17px/19px "Alegreya SC";text-transform:lowercase;color:#c8a86f;margin-top:22px;min-width:140px}.btn:hover,.btn:active,input[type="submit"]:hover,input[type="submit"]:active{background-image:linear-gradient(to bottom, rgba(200,155,60,0) 50%, rgba(200,155,60,0.25) 100%);cursor:pointer}.btn:hover,input[type="submit"]:hover{border-image:linear-gradient(to bottom, #f0e6d2 0%, #c89b3c 100%) 1 1 1 1;color:#f0e6d2}.btn:active,input[type="submit"]:active{border-image:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%) 1 1 1 1;color:#5c5b57}.btn{margin-top:0;text-decoration:none}.btn.btn-primary{border-image:linear-gradient(to bottom, #0abdb7 0%, #0abdb7 60%, #0c4550 100%) 1 1 1 1;color:#a3c7c7;background-color:rgba(16,23,33,0.5);min-width:160px}.btn.btn-primary:hover{border-image:linear-gradient(to bottom, #b4fbfb 0%, #4bb8d9 100%) 1 1 1 1;color:#caf8f7;text-shadow:0 0 3px #4be3de;box-shadow:0 0 4px rgba(75,227,222,0.6),0 0 4px rgba(75,227,222,0.6) inset;background-image:linear-gradient(rgba(75,184,217,0) 0%, rgba(75,184,217,0.25) 100%)}.btn.btn-primary:active{background-color:transparent;color:#0d404c;text-shadow:none;border:2px solid #0c4550;box-shadow:0 0 4px rgba(75,227,222,0.2),0 0 4px rgba(75,227,222,0.2) inset;background-image:linear-gradient(rgba(75,184,217,0) 0%, rgba(75,184,217,0.125) 100%)}.btn.fullWidth{display:block}.btn.disabled{pointer-events:none;border-color:#2b2f34 !important;background:none !important;color:#31353a !important;border-image:none !important;box-shadow:none}.card .card-title+.card-content{margin-top:20px}.card.featured{flex:1 100%;padding-top:28px}.checkbox{display:flex;padding:6px 11px 6px 0;margin:0 1px}.checkbox:hover{background:#1e2328;cursor:pointer}.checkbox:hover .icon .border{border-image:linear-gradient(to bottom, #785a28 0%, #ccbe91 100%);border-image-slice:1}.checkbox:hover .icon .hook{border-color:#f1e6d4}.checkbox:hover label{color:#f1e6d4;cursor:pointer}.checkbox .icon{flex:1 0%;margin:4px 0 5px}.checkbox .icon .border{height:11px;width:11px;border:1px solid #785a28;box-shadow:0 0 0 1px rgba(0,0,0,0.15),0 0 3px 1px rgba(0,0,0,0.15) inset}.checkbox .icon .hook{visibility:hidden;margin-left:5px;margin-top:-13px;height:10px;width:4px;transform:rotate(45deg);border-width:0 1px 1px 0;border-color:#c8aa6e;border-style:solid}.checkbox.checked .hook{visibility:visible}.checkbox.checked label{color:#f1e6d4}.checkbox.disabled{pointer-events:none}.checkbox.disabled .icon{flex:1 0%;margin:4px 0 5px}.checkbox.disabled .icon .border{border:1px solid rgba(122,123,118,0.5);box-shadow:0 none}.checkbox.disabled .icon .hook{border-color:#7a7b76}.checkbox.disabled label{color:#7a7b76}.checkbox label{flex:0 100%;color:#c89b3c;font:400 12px/20px Alegreya Sans;text-transform:uppercase;letter-spacing:0.05em;padding-left:11px}.collapse{margin:4px 0 0;overflow:hidden;height:24px;transition:height 0.2s cubic-bezier(0.28, 0.3, 0.09, 0.82)}.collapse .collapse-header{color:#a19b8f;font:bold 12px/24px Alegreya SC;letter-spacing:0.11em;text-transform:uppercase;height:24px;padding-left:20px;background:#1e2327}.collapse .collapse-header:before{display:inline-block;position:relative;height:0px;width:0px;border-width:4px 4px 0;border-style:solid;border-color:#a19b8f transparent transparent transparent;content:"";left:-11px;top:-2px;z-index:1;transform:rotate(-90deg);transition:transform 0.2s cubic-bezier(0.28, 0.3, 0.09, 0.82)}.collapse .collapse-header:hover{cursor:pointer}.collapse.expanded{height:auto}.collapse.expanded .collapse-header:before{transform:rotate(0deg)}.modal-backdrop{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;background:rgba(0,0,0,0.4);z-index:10000;justify-content:center;align-items:center}.modal-backdrop .modal-container{width:380px;height:auto;background:#010a13;border:1px solid #785a28;position:relative}.modal-backdrop .modal-container:before,.modal-backdrop .modal-container:after{position:absolute;display:block;content:"";width:-webkit-calc(100% - 10px);width:calc(100% - 10px);height:2px;left:4px;background:#785a28}.modal-backdrop .modal-container:before{top:-5px}.modal-backdrop .modal-container:after{bottom:-5px}.modal-backdrop .modal-container .modal-close{width:36px;height:36px;display:block;position:absolute;border-radius:50%;background:#010a13;border:1px solid #785a28;right:-18px;top:-18px}.modal-backdrop .modal-container .modal-close>div{border:1.5px solid #bda36c;border-radius:50%;color:#bda36c;margin:2px;font:14px/27px "C5AUI";text-align:center}.modal-backdrop .modal-container .modal-close:hover{cursor:pointer}.modal-backdrop .modal-container .modal-close:hover>div{color:#f1e6d4}.modal-backdrop .modal-container .modal-header{padding:24px 24px 15px}.modal-backdrop .modal-container .modal-header .modal-header-inner{font:bold 20px/24px Alegreya SC;color:#f1e6d4;letter-spacing:0.1em;text-transform:uppercase}.modal-backdrop .modal-container .modal-content{position:relative;height:-webkit-calc(100% - 77px);height:calc(100% - 77px)}.modal-backdrop .modal-container .modal-content .modal-content-inner{color:#878683;font:11px/16px "Source Sans Pro";letter-spacing:0.05em;padding:0 24px 55px}.modal-backdrop .modal-container .modal-content .modal-content-inner p{margin-top:14px}.modal-backdrop .modal-container .modal-content .modal-content-inner p span.link{color:#015175;display:block;letter-spacing:0.03em;line-height:22px}.modal-backdrop .modal-container .modal-content .modal-content-inner p span.link:hover{color:#3685a7;cursor:pointer}.modal-backdrop .modal-container .modal-content .modal-content-inner>div{margin-top:14px}.modal-backdrop .modal-container .modal-content .modal-content-inner>div:first-child{margin-top:0}.modal-backdrop .modal-container .modal-footer{display:flex;justify-content:center;position:absolute;width:100%;left:0;bottom:-1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner{background:#010a13;position:relative;padding:0 1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div{box-shadow:0 none;margin:0 1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:first-child:before,.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:last-child:after{position:absolute;display:block;content:"";height:11px;width:1px;bottom:0;background:#785a28}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:first-child:before{left:-1px}.modal-backdrop .modal-container .modal-footer>.modal-footer-inner>div:last-child:after{right:-1px}.dropdown{width:280px;margin:10px 0;font:500 13px/30px Alegreya Sans}.dropdown label{color:#a19b8f;letter-spacing:0.05em;display:block;font:500 10px/1 Alegreya Sans;padding-bottom:6px}.dropdown>div{position:relative}.dropdown>div>.value{width:100%;height:32px;background:#11161c;padding:0 22px 0 11px;margin:0;color:#a19b8f;display:block;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid transparent;border-image:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);border-image-slice:1;box-shadow:0 0 1px black inset}.dropdown>div>.value:hover{cursor:pointer}.dropdown>div>.value::before,.dropdown>div>.value::after{position:absolute;content:"";height:2px;width:2px;border-width:1px;border-style:solid;border-color:#c5a461 #c5a461 transparent transparent;right:11px}.dropdown>div>.value::before{top:11px;transform:rotate(-45deg)}.dropdown>div>.value::after{bottom:11px;transform:rotate(135deg)}.dropdown>div>.down{position:absolute;width:100%;top:32px;left:0;z-index:100;overflow:hidden;height:1px;pointer-events:none}.dropdown>div>.down>div{position:relative}.dropdown>div>.down>div .gm-scroll-view>div{height:32px;padding:0 11px;line-height:30px;color:#ccbe91;position:relative}.dropdown>div>.down>div .gm-scroll-view>div:not(:last-child){height:33px;border-bottom:1px solid #1f282d}.dropdown>div>.down>div .gm-scroll-view>div:hover{cursor:pointer;color:#f1e6d4;background:#1c2328}.dropdown>div>.down>div .gm-scroll-view>div.active:after{content:"";position:absolute;top:12px;right:11px;width:11px;height:4px;border-width:0 0 1px 1px;border-style:solid;border-color:#f1e6d4;transform:rotate(-45deg)}.dropdown.active>div>.value{color:#524018;border-image:none;border-color:#524018;box-shadow:none}.dropdown.active>div>.value::before,.dropdown.active>div>.value::after{border-color:#524018 #524018 transparent transparent}.dropdown.active>div>.down{transition:height 0.35s cubic-bezier(0.23, 1, 0.32, 1);pointer-events:all;display:block;border:1px solid transparent;border-image:linear-gradient(to bottom, #524018 0%, #6d5024 100%);border-image-slice:1;background:#11161c}.dropdown.disabled{pointer-events:none}.dropdown.disabled>div>.value{color:#2b2f34;border-image:none;border-color:#2b2f34;box-shadow:none;background:transparent}.dropdown.disabled>div>.value::before,.dropdown.disabled>div>.value::after{border-color:#2b2f34 #2b2f34 transparent transparent}.dropdown.fullWidth{width:auto}.dropdown.top>div>.down{top:auto;bottom:32px}.dropdown.top.active>div>.down{border-image:linear-gradient(to bottom, #6d5024 0%, #524018 100%);border-image-slice:1}.btn-icon{width:32px;height:32px;color:#c8aa6e;text-align:center;border-radius:50%;background:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);padding:2px;overflow:hidden}.btn-icon>div{border-radius:50%;font:16px/28px Material;background:#1e282d}.btn-icon:hover{background:linear-gradient(to bottom, #f0e6d2 0%, #c89b3c 100%);cursor:pointer}.btn-icon:hover>div{background-image:linear-gradient(to bottom, rgba(200,155,60,0) 50%, rgba(200,155,60,0.25) 100%);color:#f0e6d2}.btn-icon.btn-primary{background:linear-gradient(to bottom, #0abdb7 0%, #0abdb7 60%, #0c4550 100%);color:#a3c7c7}.btn-icon.btn-primary>div{background:#101721}.btn-icon.btn-primary:hover{background:linear-gradient(to bottom, #b4fbfb 0%, #4bb8d9 100%)}.btn-icon.btn-primary:hover>div{background-image:linear-gradient(to bottom, #102120 20%, #214341 100%);color:#caf8f7}.btn-icon.disabled{border:2px solid #31353a;background:none;color:#31353a;pointer-events:none}.btn-icon.disabled>div{background:none;line-height:24px}.options-wrapper{width:320px;height:100%;position:fixed;z-index:1200;top:0;right:-320px;background:#121a1a;display:flex;flex-direction:column;color:white;-webkit-transition:all 0.45s cubic-bezier(0.23, 1, 0.32, 1);-moz-transition:all 0.45s cubic-bezier(0.23, 1, 0.32, 1);transition:all 0.45s cubic-bezier(0.23, 1, 0.32, 1)}.options-wrapper.active{right:0;box-shadow:0 0 36px #0c1010}.options-wrapper .-horizontal{display:none !important;opacity:0 !important}.options-wrapper .options-content-wrapper{flex:1 1 0}.options-wrapper .options-content-wrapper .options-content{touch-action:pan-y}.options-wrapper .options-content-wrapper .options-content>hr{border:0;margin:16px 12px;height:1px;background:#182424;width:-webkit-calc(100% - 24px);width:calc(100% - 24px)}.options-wrapper .options-bar{flex:0 0 auto;width:100%;height:48px}.options-wrapper .options-bar .command{float:right}.options-wrapper .options-bar .command .icon-wrapper{font-size:16px}.radiobutton{display:flex;height:32px;padding:6px 11px 6px 0;margin:0 1px}.radiobutton:hover{background:#1e2328;cursor:pointer}.radiobutton:hover label{color:#f1e6d4;cursor:pointer}.radiobutton .icon{flex:1 0%;transform:rotate(45deg);margin:5px 0 5px 1px}.radiobutton .icon .border{height:10px;width:10px;border:1px solid #785a28;box-shadow:0 0 0 1px rgba(0,0,0,0.15),0 0 3px 1px rgba(0,0,0,0.15) inset}.radiobutton .icon .dot{visibility:hidden;margin-left:2.5px;margin-top:-7.5px;height:5px;width:5px;background:#c8aa6e}.radiobutton.active{pointer-events:none}.radiobutton.active .dot{visibility:visible}.radiobutton.active label{color:#f1e6d4}.radiobutton.disabled{pointer-events:none}.radiobutton.disabled .icon .border{border:1px solid #2b2f34}.radiobutton.disabled .icon .dot{background:#2b2f34}.radiobutton.disabled label{color:#31353a}.radiobutton label{flex:0 100%;color:#c89b3c;font:400 12px/20px Alegreya Sans;text-transform:uppercase;letter-spacing:0.05em;padding-left:11px}.skillcard{min-width:320px !important;height:48px;display:flex;margin-top:12px;padding:0 !important;position:relative;text-align:left;text-overflow:ellipsis;font-family:"Source Sans Pro"}.skillcard .icon{flex:1 0%;height:48px;width:48px;position:relative}.skillcard .icon .icon-label{height:16px;width:34px;position:relative;margin:32px 0 0 14px;background:#00070e;border:1px solid #2b2f34;color:#a1a4a8;text-align:center;font:10px/14px "Source Sans Pro";pointer-events:none}.skillcard .icon .icon-border{margin-top:-46px;border:1px solid #2b2f34;height:44px;width:44px;pointer-events:none}.skillcard .icon .icon-border .icon-image{border:1px solid black;height:42px;width:42px}.skillcard .icon:hover .icon-border{border-color:#efe7d0}.skillcard .icon:hover+.tooltip{visibility:visible}.skillcard .tooltip{visibility:hidden;display:block;position:absolute;width:280px;border:1px solid #785a28;background:#010a13;padding:11px;bottom:58px;left:-116px}.skillcard .tooltip:after{display:block;position:absolute;height:12px;width:12px;border-color:transparent #785a28 #785a28 transparent;border-style:solid;border-width:1px;background:#010a13;content:"";left:130px;bottom:-7px;transform:rotate(45deg)}.skillcard .tooltip .header{display:flex;padding-bottom:11px}.skillcard .tooltip .header .title{color:#efe7d0;font:bold 11px/14px Caudex;text-transform:uppercase;letter-spacing:0.05em;text-align:left;width:222px}.skillcard .tooltip .header .level{font:12px/14px "Source Sans Pro";text-align:right;width:34px}.skillcard .tooltip .body{font-size:11px;line-height:14px}.skillcard .right{flex:1 100%;height:48px;padding-left:11px;white-space:nowrap}.skillcard .right .title{color:#efe7d0;font:bold 11px/20px Caudex;text-transform:uppercase;letter-spacing:0.05em;margin-top:4px}.skillcard .right .costs{color:#a19b8f;font:10px/20px "Source Sans Pro"}.skillcard:not(.active){opacity:0.75}.skillcard.disabled{opacity:0.4}.slidein-wrapper{pointer-events:none}.slidein-backdrop{position:fixed;top:0;bottom:0;left:0;right:0;display:none;justify-content:flex-end;align-items:flex-end;flex-direction:column;background:transparent;pointer-events:none;z-index:900}.slidein-backdrop.slidein-open{pointer-events:all;display:flex}.slidein-backdrop.slidein-open>.slidein{bottom:0}.slidein-backdrop .slidein{position:relative;background:#010a13;border-top:2px solid #785a28;height:-webkit-calc(100% - 80px);height:calc(100% - 80px);width:100%;bottom:-100%;right:0;color:#a1a1a1;font:13px/14px "Source Sans Pro";letter-spacing:0.03em;padding:3px 0}.slidein-backdrop .slidein:before{position:absolute;display:block;content:"";width:-webkit-calc(100% + 22px);width:calc(100% + 22px);height:0;border-color:#010a13 transparent #785a28;border-style:solid;border-width:2px 0 1px;top:0;left:0;z-index:999}.slidein-backdrop .slidein .slidein-close{width:36px;height:36px;display:block;position:absolute;border-radius:50%;background:#010a13;border:1px solid #785a28;right:20px;top:-15px;z-index:1000}.slidein-backdrop .slidein .slidein-close>div{border:2px solid #bda36c;border-radius:50%;color:#bda36c;margin:2px;font:18px/26px Material;text-align:center}.slidein-backdrop .slidein .slidein-close:hover{cursor:pointer}.slidein-backdrop .slidein .slidein-close:hover>div{color:white}.slidein-backdrop .slidein .slidein-content{position:relative;height:100%;padding:3px 0;display:flex;flex-wrap:nowrap;overflow:hidden}.slidein-backdrop .slidein .slidein-content .gm-scrollbar{z-index:22}.slidein-backdrop .slidein .slidein-content .scroll{flex:1 1 100%}.slidein-backdrop .slidein .slidein-content .scroll .scroll-inner{padding:22px 35px !important}.slidein-backdrop .slidein .slidein-content>.options{flex:1 0 auto;width:200px;margin-left:35px;padding-top:22px}.slidein-backdrop .slidein .slidein-content>.options .radiobutton-group{width:100%}.slidein-backdrop .slidein .slidein-content>.list table{width:100%;border-collapse:collapse;white-space:nowrap}.slidein-backdrop .slidein .slidein-content>.list table td{padding:5px 5px 5px 11px}.slidein-backdrop .slidein .slidein-content>.list table td.name{width:100%}.slidein-backdrop .slidein .slidein-content>.list table td.name,.slidein-backdrop .slidein .slidein-content>.list table td.fw{color:#f0e6d2}.slidein-backdrop .slidein .slidein-content>.list table thead{font:bold 13px/22px Alegreya SC}.slidein-backdrop .slidein .slidein-content>.list table thead tr td{border-bottom:1px solid rgba(255,255,255,0.075)}.slidein-backdrop .slidein .slidein-content>.list table tbody tr:not(:last-child) td{height:36px;border-bottom:1px solid rgba(255,255,255,0.075)}.slidein-backdrop .slidein .slidein-content>.list table tbody tr:hover{background:rgba(255,255,255,0.025)}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td{height:36px}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.name{vertical-align:middle}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.name h2{font:500 15px/15px Alegreya Sans;text-transform:none;color:#f0e6d2;display:inline-block}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.check,.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.skt{font:13px/13px Alegreya SC}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.inc{font-weight:500}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td.inc .btn{padding:0 14px 3px;min-width:auto;font-size:16px}.slidein-backdrop .slidein .slidein-content>.list table tbody tr td .textfield,.slidein-backdrop .slidein .slidein-content>.list table tbody tr td .dropdown{width:200px}.slidein-backdrop .slidein .slidein-content h4{font-size:13px;letter-spacing:0.075em;line-height:40px}.slider-wrapper{width:100%;max-width:280px}.slider-wrapper input[type=range]{-webkit-appearance:none;width:100%;height:32px;background:none;margin:0 0 -7px;padding:0}.slider-wrapper input[type=range]:focus{outline:none}.slider-wrapper input[type=range]::-webkit-slider-runnable-track{width:100%;height:2px;cursor:pointer;animate:0.2s;box-shadow:0 none;background:#1f282d;border-radius:0}.slider-wrapper input[type=range]::-webkit-slider-thumb{height:14px;width:14px;border-radius:0;background:#2c404c;cursor:pointer;box-shadow:0 none;margin-top:-7px;border:0 none;transform:rotate(45deg);-webkit-appearance:none;margin-top:-10px}.slider-wrapper input[type=range]::-webkit-slider-thumb:hover{background:#3c5462}.slider-wrapper input[type=range]::-moz-range-track{width:100%;height:2px;cursor:pointer;animate:0.2s;box-shadow:0 none;background:#1f282d;border-radius:0}.slider-wrapper input[type=range]::-moz-range-thumb{height:14px;width:14px;border-radius:0;background:#2c404c;cursor:pointer;box-shadow:0 none;margin-top:-7px;border:0 none;transform:rotate(45deg)}.slider-wrapper input[type=range]::-moz-range-thumb:hover{background:#3c5462}.slider-wrapper input[type=range]::-ms-track{width:100%;height:2px;cursor:pointer;animate:0.2s;box-shadow:0 none;background:transparent;color:transparent}.slider-wrapper input[type=range]::-ms-fill-lower{background:#2c404c;border-radius:0}.slider-wrapper input[type=range]::-ms-fill-upper{background:#1f282d;border-radius:0}.slider-wrapper input[type=range]::-ms-thumb{height:14px;width:14px;border-radius:0;background:#2c404c;cursor:pointer;box-shadow:0 none;margin-top:-7px;border:0 none;transform:rotate(45deg)}.slider-wrapper input[type=range]::-ms-thumb:hover{background:#3c5462}.slider-wrapper .slider-label{flex:0 100%;font:11px/11px "Source Sans Pro";letter-spacing:0.03em;display:flex}.slider-wrapper .slider-label span:first-child{flex:0 100%}.slider-wrapper .slider-label .slider-value{color:#c8aa6e;flex:1 0%}.subtabs{width:100%;display:flex;align-items:center;position:relative;height:42px;padding:10px 0}.subtabs>.tab{font:bold 13px/21px Alegreya SC;flex:0 1 auto;letter-spacing:0.1em;margin-left:35px;text-transform:uppercase;position:relative;color:#cdbe91;min-width:0}.subtabs>.tab:hover{color:#f1e6d4;cursor:pointer}.subtabs>.tab:active,.subtabs>.tab:focus{color:#c89b3c;cursor:pointer}.subtabs>.tab:last-child{margin-right:35px}.subtabs>.tab.active{pointer-events:none;color:#f1e6d4}.subtabs>.tab.active:after{position:absolute;content:"";width:4px;height:4px;bottom:-3px;left:0;right:0;margin:0 auto;border:1px solid #cdbe91;border-color:transparent #cdbe91 #cdbe91 transparent;transform:rotate(45deg)}.subtabs>.tab.disabled{pointer-events:none;color:#797974}.subtabs>.tab div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.textfield{width:280px;overflow:hidden;margin:10px 0;position:relative;font:500 13px/30px "Alegreya Sans"}.textfield .textfield-hint{width:100%;height:32px;padding:1px 12px;pointer-events:none;position:absolute;color:#a09b8c}.textfield .textfield-hint.hide{visibility:hidden}.textfield label{color:#a19b8f;font-size:10px;line-height:10px;letter-spacing:0.05em;display:block;padding-bottom:6px}.textfield input,.textfield textarea{width:100%;height:32px;border:1px solid #524018;background:#11161c;padding:0 11px;margin:0;color:#f0e6d2;font:500 13px/30px "Alegreya Sans";display:block;box-shadow:0 0 0 1px rgba(0,0,0,0.45),0 0 0 1px rgba(0,0,0,0.45) inset;outline:0 none}.textfield input:focus,.textfield input:active,.textfield textarea:focus,.textfield textarea:active{background:linear-gradient(to bottom, #11161c 0%, #1c2328 100%);border-image:linear-gradient(to bottom, #524018 0%, #ccbe91 100%);border-image-slice:1}.textfield.fullWidth{width:auto}.textfield.disabled{pointer-events:none}.textfield.disabled .textfield-hint{color:#31353a}.textfield.disabled label{color:#31353a}.textfield.disabled input,.textfield.disabled textarea{border:1px solid #2b2f34;background:none;color:#31353a;box-shadow:none}.titlebar{position:absolute;width:100%;z-index:800}.titlebar .main{height:80px;width:100%;display:flex;position:relative}.titlebar .main .back{flex:1 0 auto;display:flex;position:relative;margin-left:35px;width:40px;align-items:center;padding-left:4px}.titlebar .main .back+.left>div:first-child{margin-left:20px}.titlebar .main .back:after{position:absolute;height:50px;width:1px;content:"";background:#3c3732;top:15px;right:-1px}.titlebar .main .back svg{transform:rotate(45deg)}.titlebar .main .back svg path{fill:#c89b3c}.titlebar .main .back svg:hover{cursor:pointer}.titlebar .main .back svg:hover path{fill:#f1e6d4}.titlebar .main .left{flex:1 1 100%;overflow:hidden;display:flex;align-items:center}.titlebar .main .left h1{color:#f1e6d4;text-transform:uppercase;margin-left:24px;letter-spacing:0.1em}.titlebar .main .left>div:first-child{margin-left:40px}.titlebar .main .left>div.avatar-wrapper{flex-shrink:0;height:48px;width:48px}.titlebar .main .left>div.avatar-wrapper+div{margin-left:24px}.titlebar .main .left>div.avatar-wrapper>div.avatar{height:44px;width:44px}.titlebar .main .left>.tab{font:bold 15px/18px Alegreya SC;flex:0 1 auto;letter-spacing:0.1em;margin-left:35px;text-transform:uppercase;position:relative;color:#cdbe91;min-width:0}.titlebar .main .left>.tab:hover{color:#f1e6d4;cursor:pointer}.titlebar .main .left>.tab:active,.titlebar .main .left>.tab:focus{color:#c89b3c;cursor:pointer}.titlebar .main .left>.tab.active{pointer-events:none;color:#f1e6d4}.titlebar .main .left>.tab.active::after{position:absolute;content:"";width:4px;height:4px;bottom:-4px;left:0;right:0;margin:0 auto;border:1px solid #cdbe91;border-color:transparent #cdbe91 #cdbe91 transparent;transform:rotate(45deg)}.titlebar .main .left>.tab.disabled{pointer-events:none;color:rgba(135,134,131,0.8)}.titlebar .main .left>.tab div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.titlebar .main .right{flex:1 0 auto;display:flex;position:relative;margin:0 35px;align-items:center}.titlebar .main .right .iconbutton,.titlebar .main .right .btn{margin-left:11px}.titlebar .main .right .ap,.titlebar .main .right .account{flex:1 0 auto;font:bold 15px/80px Alegreya SC;letter-spacing:0.1em;margin:0 11px 0 35px;text-transform:uppercase;color:#a19b8f;position:relative}.titlebar .main .right .menu-button{flex:1 0 auto;font:24px/80px Material;width:80px;text-align:center;display:none;color:#f1e6d4}#toolbar{bottom:2px;display:flex;justify-content:center;position:fixed;left:0;padding:0;width:100%;pointer-events:none}#toolbar .toolbar-inner{flex:none;padding:5px;border:1px solid rgba(70,55,20,0.75);background:rgba(0,0,0,0.4);pointer-events:all}#toolbar .toolbar-inner>div:not(:last-child){margin-right:4px}#body>main.center{background:#00070e}#body>main.center div.account-scroll{width:100%}#body>main.center div.account-scroll .-horizontal{display:none}#body>main.center div.account-scroll .-vertical{background:transparent;width:4px;z-index:100}#body>main.center div.account-scroll .-vertical .thumb{background:#1f282d;border-radius:0;width:4px}#body>main.center div.account-scroll section.account{display:flex;justify-content:center;align-items:center;position:relative;min-height:100%;width:100%}#body>main.center div.account-scroll section.account .account-inner{padding:33px 22px;text-align:center;width:320px;background:rgba(1,10,19,0.3);border-width:1px 0;border-style:solid;border-color:rgba(120,90,40,0.5);position:relative;box-shadow:0 0 60px rgba(0,0,0,0.5)}#body>main.center div.account-scroll section.account .account-inner:before,#body>main.center div.account-scroll section.account .account-inner:after{position:absolute;display:block;content:"";width:-webkit-calc(100% - 10px);width:calc(100% - 10px);height:2px;left:4px;background:#785a28}#body>main.center div.account-scroll section.account .account-inner:before{top:-5px}#body>main.center div.account-scroll section.account .account-inner:after{bottom:-5px}#body>main.center div.account-scroll section.account .account-inner h2.header{text-align:center;margin-bottom:44px}#body>main.center div.account-scroll section.account .account-inner .textfield{margin:12px 11px 0;text-align:center}#body>main.center div.account-scroll section.account .account-inner .textfield input,#body>main.center div.account-scroll section.account .account-inner .textfield textarea{text-align:center}#body>main.center div.account-scroll section.account .account-inner .btn{margin:28px 11px 0}#body>main.center div.account-scroll section.account .account-inner .btn+div:not(.btn){margin-top:38px}#body>main.center div.account-scroll section.account .account-inner .btn+div.btn{margin-top:11px}#body>main.center div.account-scroll section.account .account-inner p{margin:28px 11px 0;font-size:11px;line-height:20px;color:#a19b8f}#body>main.center div.account-scroll section.account .account-inner p:first-child{margin-top:0;margin-bottom:28px}#body>main.center div.account-scroll section.account .account-inner p .link{color:#015175;display:block;letter-spacing:0.03em}#body>main.center div.account-scroll section.account .account-inner p .link:hover{color:#3685a7;cursor:pointer}#body>main section#about .page .scroll-inner{padding-bottom:22px}#body>main section#about .page .scroll-inner .third-party-software{font-size:12px;line-height:normal;margin-top:10px}#body>main section#account .page .scroll-inner{padding-bottom:22px}#body>main section#account .page .scroll-inner>div.padding{height:22px}#body>main section#account .page .scroll-inner>.btn{margin-top:20px}#body>main section#attribute .page::before{position:absolute;width:-webkit-calc(100% - 70px);width:calc(100% - 70px);height:1px;content:"";background:#3c3732;top:0;left:35px}#body>main section#attribute .scroll-inner{flex-wrap:wrap;flex-direction:column;align-items:center}#body>main section#attribute .scroll-inner .attr{margin:10px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;flex:none}#body>main section#attribute .scroll-inner .attr>.short{font:bold 14px/28px Alegreya;color:#f1e6d4;letter-spacing:0.05em;text-transform:uppercase;text-align:center}#body>main section#attribute .scroll-inner .attr>.value{border:2px solid transparent;padding:2px;background:#0d141c}#body>main section#attribute .scroll-inner .attr>.value>div{border:1px solid #3c3c41;padding:1px}#body>main section#attribute .scroll-inner .attr>.value>div>div{height:45px;width:45px;text-align:center;font:bold 28px/45px Alegreya Sans;color:#f1e6d4;letter-spacing:0.05em;text-transform:uppercase;background:#010a13;overflow:hidden}#body>main section#attribute .scroll-inner .attr>.btn-icon{margin-top:5px}#body>main section#attribute .scroll-inner .attr.ATTR_1>.value{border-color:#aa1b32}#body>main section#attribute .scroll-inner .attr.ATTR_2>.value{border-color:#6b4497}#body>main section#attribute .scroll-inner .attr.ATTR_3>.value{border-color:#06a341}#body>main section#attribute .scroll-inner .attr.ATTR_4>.value{border-color:#3c3c41}#body>main section#attribute .scroll-inner .attr.ATTR_5>.value{border-color:#aea000}#body>main section#attribute .scroll-inner .attr.ATTR_6>.value{border-color:#005177}#body>main section#attribute .scroll-inner .attr.ATTR_7>.value{border-color:#d1c6a4}#body>main section#attribute .scroll-inner .attr.ATTR_8>.value{border-color:#ac6000}#body>main section#attribute .scroll-inner>.counter{margin-top:10px;text-align:center}#body>main section#attribute .scroll-inner>.main,#body>main section#attribute .scroll-inner>.calculated{display:flex;flex-wrap:wrap;justify-content:center}#body>main section#attribute .scroll-inner>.main{padding-bottom:16px;display:flex;flex-wrap:wrap;justify-content:center}#body>main section#attribute .scroll-inner>.calculated .value{border-color:#010a13}#herocreation .modal-container{width:330px}#body>main section#herolist .page>.list ul{margin:0;padding:1px 0;list-style:none}#body>main section#herolist .page>.list ul li{position:relative;padding:11px;display:flex;align-items:center}#body>main section#herolist .page>.list ul li>svg{position:absolute;top:7px;left:7px;-webkit-filter:drop-shadow(0 0 2px #000);filter:drop-shadow(0 0 2px #000);z-index:2;visibility:hidden}#body>main section#herolist .page>.list ul li>svg .progress-arc--fg{stroke:#8f52cc}#body>main section#herolist .page>.list ul li>.el{z-index:1;flex:none;height:55px;width:55px}#body>main section#herolist .page>.list ul li>.el>div{height:51px;width:51px;border-radius:50%}#body>main section#herolist .page>.list ul li>.el>div.overlay{position:absolute;visibility:hidden;background:rgba(0,0,0,0.75)}#body>main section#herolist .page>.list ul li>.el>div.overlay h2{text-align:center;line-height:51px;font-size:21px}#body>main section#herolist .page>.list ul li>.main{flex:1 1 100%;margin-left:16px}#body>main section#herolist .page>.list ul li .base-values{display:flex}#body>main section#herolist .page>.list ul li .base-values>div:not(:first-child){margin-left:11px}#body>main section#herolist .page>.list ul li:not(:first-child){border-top:1px solid rgba(255,255,255,0.075)}#body>main section#herolist .page>.list ul li:hover>svg,#body>main section#herolist .page>.list ul li:hover>.el>div.overlay{visibility:visible}#body>main section#herolist .page>.list ul li>.btn.primary{min-width:140px}#body>main section#master::before{position:absolute;width:-webkit-calc(100% - 70px);width:calc(100% - 70px);height:1px;content:"";background:#3c3732;top:80px;left:35px}#body>main section#master .page#ingame{flex-direction:column}#body>main section#master .page#ingame .header-controls{flex:1 0 auto;margin:10px 0 0;padding:0 35px;width:100%;display:flex;align-items:center;justify-content:flex-end}#body>main section#master .page#ingame .header-controls .online-link{margin-right:33px;flex:1 1 100%;display:flex;align-items:center;justify-content:flex-start}#body>main section#master .page#ingame .header-controls .online-link>.textfield{flex:1 1 auto;max-width:280px;width:auto;margin:0}#body>main section#master .page#ingame .header-controls .online-link>.btn{margin-left:22px;flex:none}#body>main section#master .page#ingame .header-controls>div:not(:last-child):not(.online-link){margin-right:13px;flex:none}#body>main section#master .page#ingame .ingame-content{flex:1 1 100%;display:flex;overflow:hidden}#body>main section#master .page#ingame .ingame-content .textfield input,#body>main section#master .page#ingame .ingame-content .textfield textarea{background:rgba(17,22,28,0.65)}#body>main section#master .page#ingame .ingame-content .textfield input:focus,#body>main section#master .page#ingame .ingame-content .textfield input:active,#body>main section#master .page#ingame .ingame-content .textfield textarea:focus,#body>main section#master .page#ingame .ingame-content .textfield textarea:active{background:linear-gradient(to bottom, rgba(17,22,28,0.65) 0%, rgba(28,35,40,0.65) 100%)}#body>main section#master .page#ingame .ingame-content .-horizontal{display:block}#body>main section#master .page#ingame .ingame-table{padding-top:35px;flex:none;display:flex;position:relative}#body>main section#master .page#ingame .ingame-table.hide-deac tr.deac,#body>main section#master .page#ingame .ingame-table.hide-enemies tr.enemy{display:none}#body>main section#master .page#ingame .ingame-table table{padding:0;margin:0;border-collapse:collapse}#body>main section#master .page#ingame .ingame-table table tr{border-bottom:1px solid rgba(120,90,40,0.4);position:relative}#body>main section#master .page#ingame .ingame-table table tr td{padding:0;text-align:center}#body>main section#master .page#ingame .ingame-table table thead tr{height:28px}#body>main section#master .page#ingame .ingame-table table thead tr td{font:500 12px/27px "Alegreya Sans";color:rgba(91,90,86,0.7)}#body>main section#master .page#ingame .ingame-table table tbody tr{height:44px}#body>main section#master .page#ingame .ingame-table table tbody tr.deac td{opacity:0.4}#body>main section#master .page#ingame .slidein-backdrop .slidein{height:397px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content{height:100%}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:center;padding:20px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div{width:33.3333%;padding:0 5px;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-main>div{width:50%;padding:0 5px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-health{padding:0 5px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-health>div{width:50%;padding:0 5px}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-options{display:block}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-options .btn{margin:5px 5px 0 0}#body>main section#master .page#ingame .slidein-backdrop .slidein-content .edit-inner>div.edit-options .textfield{width:100%}#body>main section#master .page#ingame .ingame-controls{flex:1 0 auto;width:200px;margin-left:35px;position:relative}#body>main section#master .page#ingame .ingame-controls .rounds{width:200px;height:200px;text-align:center;text-transform:lowercase;position:relative}#body>main section#master .page#ingame .ingame-controls .rounds .tag{font:18px/24px Alegreya SC;letter-spacing:0.05em;color:#a19b8f;padding-top:35px}#body>main section#master .page#ingame .ingame-controls .rounds .phase{font:60px/60px Alegreya SC;letter-spacing:0.05em;color:#f1e6d4}#body>main section#master .page#ingame .ingame-controls .rounds .round{font:18px/24px Alegreya SC;letter-spacing:0.05em;color:#a19b8f;padding-top:11px}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase{left:-10px}#body>main section#master .page#ingame .ingame-controls .rounds .next-phase{right:-10px}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase,#body>main section#master .page#ingame .ingame-controls .rounds .next-phase{top:75px;position:absolute;font:32px/44px Material;text-align:center;width:44px;color:#785a28;border-radius:50%}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase:hover,#body>main section#master .page#ingame .ingame-controls .rounds .next-phase:hover{color:#f1e6d4;cursor:pointer;text-shadow:0 0 2px 4px black;background:rgba(91,90,86,0.2)}#body>main section#master .page#ingame .ingame-controls .rounds .previous-phase.disabled,#body>main section#master .page#ingame .ingame-controls .rounds .next-phase.disabled{pointer-events:none;opacity:0.5}#body>main section#master .page#ingame .ingame-controls .resets{display:flex;align-items:center;justify-content:center}#body>main section#master .page#ingame .ingame-controls .resets>div:not(:last-child){margin-right:13px}#body>main section#master .page#ingame .ingame-controls .options{margin-top:13px}#body>main section#master .page#ingame .ingame-table .ingame-table-center{flex:1 1 100%;position:relative;overflow:hidden}#body>main section#master .page#ingame .ingame-table .ingame-table-center .ingame-table-center-scroll{overflow-x:scroll;overflow-y:hidden;height:-webkit-calc(100% + 17px);height:calc(100% + 17px)}#body>main section#master .page#ingame .ingame-table .ingame-table-health{flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-health table{width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td{position:relative;width:25%}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar{height:8px;width:90px;margin:4px 8px;padding:1px;display:block;background:linear-gradient(to bottom, #785a28 0%, #463714 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-inner{height:6px;position:relative}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-bg,#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-fg{height:6px}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-bg{border:1px solid #242328;background:#242328;width:100%;left:0}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar .bar-fg{transition:width 0.45s cubic-bezier(0.23, 1, 0.32, 1);background:#242328;right:0;position:absolute}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar:not(.active)>.bar-fg{width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.no-le{border:1px solid rgba(91,90,86,0.3);background:none}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.no-le .bar-bg,#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.no-le .bar-fg{border-color:transparent;background:none}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-le.active .bar-bg{background:linear-gradient(to right, #aa1805 0%, #cc4c1f 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-au.active .bar-bg{background:linear-gradient(to right, #5eaa05 0%, #7fc80c 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-ae.active .bar-bg{background:linear-gradient(to right, #0596aa 0%, #0cc8c6 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-health table tr td .bar.bar-ke.active .bar-bg{background:linear-gradient(to right, #aa6a05 0%, #c8910c 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-ini{margin-right:8px;flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table{width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table tr td{width:44px}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table tr td>div{width:34px;height:34px;margin:0 5px;position:relative}#body>main section#master .page#ingame .ingame-table .ingame-table-ini table tr td>div.indicator{border:1px solid rgba(120,90,40,0.6);background:rgba(0,0,0,0.4);color:#f1e6d4;font:24px/28px Alegreya SC}#body>main section#master .page#ingame .ingame-table .ingame-table-left{padding-left:7px;margin-right:8px;flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-left tr:after{display:block;position:absolute;width:3px;height:3px;content:"";border:1px solid rgba(120,90,40,0.4);left:-5.5px;bottom:-2px;transform:rotate(45deg)}#body>main section#master .page#ingame .ingame-table .ingame-table-left table thead tr td.ib{padding-left:18px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table thead tr td.init{padding:0 0 0 6px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.ib{font:500 11px/43px "Alegreya Sans";padding-left:15px;color:#878683}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar{padding:6px 0 6px 6px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer{height:30px;width:30px;border-radius:50%;background:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);box-shadow:0 0 4px black;position:relative}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer .avatar-inner{width:26px;height:26px;margin:2px;border-radius:50%;background:#090f15;box-shadow:0 0 4px black inset;overflow:hidden;position:absolute}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer .avatar-inner span.init{font:500 13px/26px "Alegreya Sans";color:#f1e6d4;width:26px}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.avatar div.avatar-outer .avatar-inner img{min-height:100%;min-width:100%}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr td.name{font:700 14px/43px "Alegreya SC";color:#f1e6d4;letter-spacing:0.05em;padding:0 22px 0 13px;text-align:left}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-v td.avatar div.avatar-outer{background:linear-gradient(to bottom, #689cc4 0%, #3678aa 10%, #306b99 76%, #244c6b 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-v td.name{color:#4987b6}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-f td.avatar div.avatar-outer{background:linear-gradient(to bottom, #c16876 0%, #a83547 10%, #993040 76%, #68232d 100%)}#body>main section#master .page#ingame .ingame-table .ingame-table-left table tbody tr.type-f td.name{color:#e4213f}#body>main section#master .page#ingame .ingame-table .ingame-table-right{padding-right:7px;margin-left:8px;flex:none}#body>main section#master .page#ingame .ingame-table .ingame-table-right tr:after{display:block;position:absolute;width:3px;height:3px;content:"";border:1px solid rgba(120,90,40,0.4);right:-5.5px;bottom:-2px;transform:rotate(45deg)}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tr td.au,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tr td.a,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tr td.fa{padding-left:7px}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.au div,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.a div,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.fa div{font-size:15px;color:#878683;line-height:32px;width:32px;border-radius:50%}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.au div:hover,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.a div:hover,#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.fa div:hover{color:#f1e6d4;cursor:pointer;background:rgba(91,90,86,0.2)}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.edit{padding-left:16px;padding-right:9px}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.edit div{font:18px/36px Material;text-align:center;width:36px;color:#ccbe91;border-radius:50%}#body>main section#master .page#ingame .ingame-table .ingame-table-right table tbody tr td.edit div:hover{color:#f1e6d4;cursor:pointer;background:rgba(91,90,86,0.2)}#body>main section#profile .page#overview .scroll-inner{padding-bottom:22px}#body>main section#profile .page#overview .title-wrapper{margin-top:11px;display:flex;align-items:center}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper{flex:1 0 auto;height:150px;width:150px}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:hover{cursor:pointer}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:hover>div.avatar{box-shadow:0 0 0 71px rgba(0,0,0,0.85) inset}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:hover>div.avatar::after{position:absolute;top:39px;left:39px;content:"\E2C6";width:64px;font:64px/64px Material;color:#f1e6d4;text-align:center}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:not(.no-avatar){padding:4px;background:#785a28}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper:not(.no-avatar)>div.avatar::after{top:43px;left:43px}#body>main section#profile .page#overview .title-wrapper .avatar-wrapper.no-avatar{border-width:4px}#body>main section#profile .page#overview .title-wrapper .text-wrapper{flex:1 1 100%;margin-left:26px}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1{margin:0;font:400 38px/38px Alegreya Sans;letter-spacing:0.025em;color:#f1e6d4}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1,#body>main section#profile .page#overview .title-wrapper .text-wrapper>div.change-name{display:flex;height:38px;align-items:center}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1>div.textfield,#body>main section#profile .page#overview .title-wrapper .text-wrapper>div.change-name>div.textfield{margin:0}#body>main section#profile .page#overview .title-wrapper .text-wrapper>h1>div.iconbutton,#body>main section#profile .page#overview .title-wrapper .text-wrapper>div.change-name>div.iconbutton{margin-left:11px;letter-spacing:0}#body>main section#profile .page#overview .title-wrapper .text-wrapper>div:not(.change-name){margin:4px 0 0}#profileavatarchange .avatar-wrapper{height:64px;width:64px}#body>main section#rcp{background-image:url("images/rcp.png");background-color:#010c0a}#body>main section#rcp .page>.list ul{margin:0;padding:1px 0;list-style:none}#body>main section#rcp .page>.list ul li{position:relative;padding:11px;display:flex;align-items:center}#body>main section#rcp .page>.list ul li>.left{flex:1 1 100%}#body>main section#rcp .page>.list ul li>.right{flex:0 0 auto;margin-left:11px}#body>main section#rcp .page>.list ul li h2{line-height:22px;margin-bottom:5px}#body>main section#rcp .page>.list ul li .base-values{display:flex}#body>main section#rcp .page>.list ul li .base-values>div:not(:first-child){margin-left:11px}#body>main section#rcp .page>.list ul li:not(:first-child){border-top:1px solid rgba(255,255,255,0.075)}#body>main section#rcp .page>.list ul li.active .btn{min-width:140px}#body>main section#rcp .page>.list.professions li h2{padding:5px 0 0}#body>main section#rcp .page>.list.professions li h3{font:500 13px/15px Alegreya Sans SC;color:#878683;text-transform:uppercase;margin-top:0;margin-bottom:7px}#body>main section#rcp .page>.list .iconbutton{border-radius:50%;background:linear-gradient(to bottom, #c6a767 0%, #ad8736 10%, #9a7830 76%, #6d5024 100%);padding:2px;overflow:hidden}#body>main section#rcp .page>.list .iconbutton>div{border-radius:50%;font-size:16px;line-height:28px;background:#1e282d}#body>main section#rcp .page>.list .iconbutton:hover{background:linear-gradient(to bottom, #f0e6d2 0%, #c89b3c 100%)}#body>main section#rcp .page>.list .iconbutton:hover>div{background-image:linear-gradient(to bottom, rgba(200,155,60,0) 50%, rgba(200,155,60,0.25) 100%);color:#f0e6d2}#body>main section#rcp .page#professions .spec>div{display:flex}#body>main section#rcp .page#professions .spec>div>div:last-child:not(:first-child){margin-left:11px}#body>main section#rcp .page#professions .list.curses>div{display:flex;align-items:center}#body>main section#rcp .page#professions .list.curses>div:hover{background:#1e2328}#body>main section#rcp .page#professions .list.curses>div>.checkbox{flex:1 1 100%}#body>main section#rcp .page#professions .list.curses>div>.checkbox:hover{background:none}#body>main section#rcp .page#professions .list.curses>div>span{margin:0 11px}#body>main section#rcp .page#professions .list.curses>div>.btn{padding:0 14px 3px;min-width:auto;font-size:16px;flex:none;margin-left:4px}#body>main section#rcp .page#professions .list.lang_lit>h4>span.error{color:#aa1b32}#body>main section#rcp .page#professions .list.lang_lit>div{display:flex;align-items:center}#body>main section#rcp .page#professions .list.lang_lit>div:hover{background:#1e2328}#body>main section#rcp .page#professions .list.lang_lit>div>.checkbox{flex:1 1 100%}#body>main section#rcp .page#professions .list.lang_lit>div>.checkbox:hover{background:none}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown{margin:0;line-height:26px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown>div>div.value{height:28px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown>div>div.value::before{top:9px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown>div>div.value::after{bottom:9px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown.bottom>div>.down{top:28px}#body>main section#rcp .page#professions .list.lang_lit>div>.dropdown.top>div>.down{bottom:28px}#body>main section#rcp .page#professions .scroll-inner>.btn.primary{margin-top:20px}#sheets .sheet-wrapper .sheet.inventory .item-categories{margin-top:0;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:space-between;height:100%;width:calc(100% + 20px)}#sheets .sheet-wrapper .sheet.inventory .item-categories>div{margin:20px 0 0 !important;width:50%;padding-right:20px;padding-bottom:40px;border-spacing:0}#sheets .sheet-wrapper .sheet.inventory .item-categories>div>h3{line-height:18px}#sheets .sheet-wrapper .sheet.inventory .item-categories>div>table{margin:0 !important}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.all-items{flex:0 100%}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.provisions{min-height:200px}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.clothes{min-height:120px}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.connections{flex:1}#sheets .sheet-wrapper .sheet.inventory .item-categories>div.money{flex:none}#sheets .sheet-wrapper .sheet.inventory .pets{flex:none;min-height:120px;margin-top:20px}#sheets .sheet-wrapper .sheet.inventory .inline-table h3{line-height:inherit;display:inline-block}#sheets .sheet-wrapper .sheet.inventory .inline-table tbody td.name{text-transform:none;text-indent:-10px;padding-left:10px !important;padding-right:15px}#sheets .sheet-wrapper .sheet.inventory .inline-table td{height:18px;line-height:18px;vertical-align:bottom}#sheets .sheet-wrapper .sheet.inventory .inline-table td.weight{white-space:nowrap}#sheets .sheet-wrapper .sheet.inventory .inline-table td.charges{width:10px;white-space:nowrap}#sheets .sheet-wrapper .sheet.chants>.header .attributes>div:nth-child(9){width:110px}#sheets .sheet-wrapper .sheet.chants>.header .attributes>div:nth-child(9)>.value>div>div{width:100%}#sheets .sheet-wrapper .sheet.chants>.header .attributes>div:nth-child(10){width:350px;margin-right:0}#sheets .sheet-wrapper .sheet.chants>div:not(.head){height:auto;width:100%}#sheets .sheet-wrapper .sheet.chants>div:not(.head).miracles>div{display:flex}#sheets .sheet-wrapper .sheet.chants>div:not(.head).miracles>div>div{width:50%}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .inline-table{white-space:nowrap}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .inline-table td:first-child{width:10px;padding-right:15px}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .inline-table td:not(.rank){height:18px;line-height:18px;font-size:9px}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .rank span:first-child{font-weight:bold}#sheets .sheet-wrapper .sheet.chants>div:not(.head) .rank span:last-child{padding-left:5px;font-size:8px;letter-spacing:0.04em}#sheets .sheet-wrapper .sheet.main>.upper{flex:none}#sheets .sheet-wrapper .sheet.main>.upper>.info{flex:1 1 100%;display:flex;flex-wrap:wrap;align-content:flex-start;overflow:hidden}#sheets .sheet-wrapper .sheet.main>.upper>.info .name,#sheets .sheet-wrapper .sheet.main>.upper>.info .characteristics,#sheets .sheet-wrapper .sheet.main>.upper>.info .other{width:100%}#sheets .sheet-wrapper .sheet.main>.upper>.info .family,#sheets .sheet-wrapper .sheet.main>.upper>.info .placeofbirth,#sheets .sheet-wrapper .sheet.main>.upper>.info .dateofbirth,#sheets .sheet-wrapper .sheet.main>.upper>.info .race,#sheets .sheet-wrapper .sheet.main>.upper>.info .haircolor,#sheets .sheet-wrapper .sheet.main>.upper>.info .eyecolor,#sheets .sheet-wrapper .sheet.main>.upper>.info .culture,#sheets .sheet-wrapper .sheet.main>.upper>.info .profession,#sheets .sheet-wrapper .sheet.main>.upper>.info .title,#sheets .sheet-wrapper .sheet.main>.upper>.info .socialstatus{width:50%}#sheets .sheet-wrapper .sheet.main>.upper>.info .age,#sheets .sheet-wrapper .sheet.main>.upper>.info .gender,#sheets .sheet-wrapper .sheet.main>.upper>.info .size,#sheets .sheet-wrapper .sheet.main>.upper>.info .weight{width:25%}#sheets .sheet-wrapper .sheet.main>.upper>.info .name .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .family .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .dateofbirth .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .race .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .haircolor .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .culture .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .title .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .characteristics .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .other .label{width:80px}#sheets .sheet-wrapper .sheet.main>.upper>.info .placeofbirth .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .age .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .size .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .eyecolor .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .profession .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .socialstatus .label{width:63px}#sheets .sheet-wrapper .sheet.main>.upper>.info .gender .label,#sheets .sheet-wrapper .sheet.main>.upper>.info .weight .label{width:58px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait{flex:none;width:290px;margin-left:10px;display:flex;flex-wrap:wrap}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox{display:flex;height:40px;margin:14px 0 0;width:170px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox.el{width:100%}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox.el .box{width:170px;font-size:20px;font-weight:400}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox.el label{margin-left:0;text-align:center}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox .box{font:bold 24px/40px Alegreya Sans;text-align:center;width:70px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait>.labelbox label{margin-left:10px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait{width:120px;flex-direction:column}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait .box{width:120px;height:148px}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait .box .avatar{height:100%;width:100%}#sheets .sheet-wrapper .sheet.main>.upper>.ap-portrait .portrait label{height:30px;line-height:30px}#sheets .sheet-wrapper .sheet.main>.lower{margin-top:22px;flex:1 1 100%}#sheets .sheet-wrapper .sheet.main>.lower>.lists{flex:1 1 100%;display:flex;flex-direction:column}#sheets .sheet-wrapper .sheet.main>.lower>.lists>.textbox{flex:1 0 auto}#sheets .sheet-wrapper .sheet.main>.lower>.lists>.textbox>div{font:400 16px Alegreya Sans;letter-spacing:0;padding-top:8px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated{width:290px;flex:none;margin-top:36px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div.calc-header{margin-top:10px;justify-content:flex-end;height:auto;align-items:flex-end;margin-right:-5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div.calc-header>div{width:34px;font:bold 9px Alegreya Sans;margin-right:5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div{display:flex;justify-content:space-between;margin-bottom:5px;height:54px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.label span{display:block;font:italic 900 9px Alegreya Sans}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.label span.sub{margin-top:6px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values{display:flex;flex-wrap:wrap;width:156px;align-content:flex-start;align-items:flex-start;margin-right:-5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div{height:34px;width:34px;border:1px solid black;font:21px/32px Alegreya Sans;text-align:center;margin-right:5px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div:nth-child(4){font-weight:bold}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div.sub{height:17px;line-height:15px;font-size:9px;margin-top:2px}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div>.values>div.blocked{font:24px/32px Material}#sheets .sheet-wrapper .sheet.main>.lower>.calculated>div.fate{margin-top:36px}#sheets .sheet-wrapper .sheet.main>.head{padding-bottom:20px;border-bottom:2px solid black;height:172px}#sheets .sheet-wrapper .sheet.main>.head>*{float:left}#sheets .sheet-wrapper .sheet.main>.head .head-left{height:150px;width:150px}#sheets .sheet-wrapper .sheet.main>.head .head-left .portrait{height:100%;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}#sheets .sheet-wrapper .sheet.main>.head .head-left .portrait img{border:4px solid black;max-height:100%;max-width:100%;border-radius:50%}#sheets .sheet-wrapper .sheet.main>.head .head-right{height:150px;width:568px;padding-left:20px;padding-top:15px;line-height:23px;position:relative}#sheets .sheet-wrapper .sheet.main>.head .head-right div.classes h1.name{font:bold 20px/28px Caudex;margin-bottom:10px;letter-spacing:0.05em;text-transform:uppercase}#sheets .sheet-wrapper .sheet.main>.head .head-right div.classes h2.race-culture{font:bold 14px/20px Caudex;letter-spacing:0.05em;margin-bottom:10px}#sheets .sheet-wrapper .sheet.main>.head .head-right div.classes h2.prof{font:bold 14px/20px Caudex;letter-spacing:0.05em}#sheets .sheet-wrapper .sheet.main>.head .head-right div.main-values{text-align:right;padding-top:5px;position:absolute;top:0;right:0}#sheets .sheet-wrapper .sheet.main>.head .head-right div.main-values div.ap>span:not(.level){opacity:0.25}#sheets .sheet-wrapper .sheet.main>.head .head-right div.main-values div.so{padding-top:10px}#sheets .sheet-wrapper .sheet.main>.head .head-right div.qualities{width:100%;float:left;margin-top:10px;display:flex;justify-content:space-between;font:13px/20px "Source Sans Pro"}#sheets .sheet-wrapper .sheet.main>.head .head-right div.qualities .q-available{opacity:0.5}#sheets .sheet-wrapper .sheet.main>.left{margin-top:20px;border-right:2px solid black;width:200px;height:-webkit-calc(100% - 192px);height:calc(100% - 192px);float:left}#sheets .sheet-wrapper .sheet.main>.left .base-stats>div{height:16px}#sheets .sheet-wrapper .sheet.main>.left .base-stats>div>div{float:left}#sheets .sheet-wrapper .sheet.main>.left .base-stats>div>div>span:first-child{display:inline-block;width:30px}#sheets .sheet-wrapper .sheet.main>.left .vt-list,#sheets .sheet-wrapper .sheet.main>.left .nt-list{list-style:none outside none}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li{display:flex}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li>div,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li>div{flex:1 0 auto}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li>div:first-child,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li>div:first-child{width:170px;padding-left:10px;text-indent:-10px}#sheets .sheet-wrapper .sheet.main>.left .vt-list>li>div:last-child,#sheets .sheet-wrapper .sheet.main>.left .nt-list>li>div:last-child{width:28px}#sheets .sheet-wrapper .sheet.main>.right{height:-webkit-calc(100% - 192px);height:calc(100% - 192px);float:right;width:518px;margin-top:20px;padding-left:20px}#sheets .box{border:1px solid black}#sheets .labelbox{display:flex;flex-direction:row;align-items:center}#sheets .labelbox>.box{flex:none}#sheets .labelbox>label{flex:1 1 100%;font:bold 11px Alegreya;display:block}#sheets .plain{display:flex;align-items:center;height:21px}#sheets .plain div.label{font:bold 11px Alegreya;padding-right:7px;flex:none}#sheets .plain div.value{font:400 13px Alegreya Sans;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 100%;padding-right:5px}#sheets{flex-flow:column nowrap}#sheets>.options{margin-bottom:11px}#sheets .scroll-inner{display:flex;flex-flow:column nowrap;align-items:center}#sheets .scroll-inner .sheet{width:21cm;height:29.7cm;background:white;margin-top:30px;text-align:left;padding:1cm;font:11px/16px Alegreya;color:black;letter-spacing:0;display:flex;flex-direction:column}#sheets .scroll-inner .sheet:last-child{margin-bottom:30px}#sheets .scroll-inner .sheet>div{display:flex;justify-content:space-between}#sheets .scroll-inner .sheet h1,#sheets .scroll-inner .sheet h2,#sheets .scroll-inner .sheet h3{color:black;margin:0}#sheets .scroll-inner .sheet h1{font:italic bold 24px/22px Alegreya}#sheets .scroll-inner .sheet h2{font:17px/13px Alegreya SC;text-transform:none;letter-spacing:0}#sheets .scroll-inner .sheet h3{font:bold 16px Alegreya;letter-spacing:0}#sheets .scroll-inner .sheet>.header{margin-bottom:11px;align-items:flex-end;flex:none;height:110px}#sheets .scroll-inner .sheet>.header>.title{flex:1 1 100%;height:50px;display:flex;flex-direction:column;justify-content:center}#sheets .scroll-inner .sheet>.header>.title h1,#sheets .scroll-inner .sheet>.header>.title h2{text-align:center}#sheets .scroll-inner .sheet>.header>.title h2{margin-top:5px}#sheets .scroll-inner .sheet>.header .attributes{flex:none;display:flex;flex-wrap:wrap-reverse;width:475px}#sheets .scroll-inner .sheet>.header .attributes .attr{flex:none;margin:5px 5px 0;position:relative}#sheets .scroll-inner .sheet>.header .attributes .attr>.short{font:bold 10px/14px Alegreya;color:black;letter-spacing:0.05em;text-transform:uppercase;text-align:center;position:absolute;top:0;padding:4px 8px 0}#sheets .scroll-inner .sheet>.header .attributes .attr>.value{border:2px solid transparent;padding:0}#sheets .scroll-inner .sheet>.header .attributes .attr>.value>div{border:1px solid black;padding:0}#sheets .scroll-inner .sheet>.header .attributes .attr>.value>div>div{height:44px;width:44px;text-align:center;font:bold 21px/30px Alegreya Sans;color:black;letter-spacing:0.05em;text-transform:uppercase;background:transparent;overflow:hidden;padding-top:14px}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_1>.value{border-color:red}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_2>.value{border-color:#90c}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_3>.value{border-color:#3c3}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_4>.value{border-color:black}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_5>.value{border-color:yellow}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_6>.value{border-color:blue}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_7>.value{border-color:white}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_8{margin-right:0}#sheets .scroll-inner .sheet>.header .attributes .attr.ATTR_8>.value{border-color:#f60}#sheets .sheet-wrapper .sheet.spells>.header .attributes>div:nth-child(9){width:110px}#sheets .sheet-wrapper .sheet.spells>.header .attributes>div:nth-child(9)>.value>div>div{width:100%}#sheets .sheet-wrapper .sheet.spells>.header .attributes>div:nth-child(10){width:350px;margin-right:0}#sheets .sheet-wrapper .sheet.spells .inline-table{white-space:nowrap;width:500px}#sheets .sheet-wrapper .sheet.spells .inline-table tr.specs{font-style:italic}#sheets .sheet-wrapper .sheet.spells .inline-table tr.specs td{padding-left:30px !important}#sheets .sheet-wrapper .sheet.spells .inline-table td.se{width:14px}#sheets .sheet-wrapper .sheet.spells .inline-table td.se div{height:10px;width:10px;border:1px solid black;border-radius:5px}#sheets .sheet-wrapper .sheet.spells .inline-table td.name{text-transform:none}#sheets .sheet-wrapper .sheet.spells .inline-table td.name span:last-child{float:right;padding-right:15px}#sheets .sheet-wrapper .sheet.spells .inline-table td.test,#sheets .sheet-wrapper .sheet.spells .inline-table td.skt,#sheets .sheet-wrapper .sheet.spells .inline-table td.zfw,#sheets .sheet-wrapper .sheet.spells .inline-table td.merk,#sheets .sheet-wrapper .sheet.spells .inline-table td.rep{padding-right:15px;width:15px}#sheets .sheet-wrapper .sheet.spells .inline-table td.zfw{width:50px}#sheets .sheet-wrapper .sheet.spells .inline-table td.page{width:1px}#sheets .sheet-wrapper .sheet.talents{position:relative}#sheets .sheet-wrapper .sheet.talents .inline-table thead>tr>td:first-child>span{padding-left:5px}#sheets .sheet-wrapper .sheet.talents .inline-table tbody{font-size:9px}#sheets .sheet-wrapper .sheet.talents .inline-table h3{line-height:inherit;display:inline-block}#sheets .sheet-wrapper .sheet.talents .inline-table tr.specs{font-style:italic}#sheets .sheet-wrapper .sheet.talents .inline-table tr.specs td{padding-left:30px !important}#sheets .sheet-wrapper .sheet.talents .inline-table td{height:18px;line-height:18px}#sheets .sheet-wrapper .sheet.talents .inline-table td.se{width:14px}#sheets .sheet-wrapper .sheet.talents .inline-table td.se div{height:8px;width:8px;border:1px solid black;border-radius:5px}#sheets .sheet-wrapper .sheet.talents .inline-table td.name{text-transform:none}#sheets .sheet-wrapper .sheet.talents .inline-table td.name span:last-child{float:right;padding-right:15px}#sheets .sheet-wrapper .sheet.talents .inline-table td.skt{width:18px}#sheets .sheet-wrapper .sheet.talents .inline-table td.be{width:30px}#sheets .sheet-wrapper .sheet.talents .inline-table td.at,#sheets .sheet-wrapper .sheet.talents .inline-table td.pa{width:24px}#sheets .sheet-wrapper .sheet.talents .inline-table td.taw{width:40px}#sheets .sheet-wrapper .sheet.talents .skill-categories{margin-top:0;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:space-between;height:calc(100% - 40px);width:calc(100% + 20px)}#sheets .sheet-wrapper .sheet.talents .skill-categories>*{margin:20px 0 0 !important;width:50%;padding-right:20px;padding-bottom:40px;border-spacing:0}#sheets .sheet-wrapper .sheet.talents .skill-categories>div{margin-top:20px}#sheets .sheet-wrapper .sheet.talents .skill-categories>div>h3{line-height:18px}#sheets .sheet-wrapper .sheet.talents .left{float:left;padding-right:10px}#sheets .sheet-wrapper .sheet.talents .left>table:nth-child(2){flex:0.2}#sheets .sheet-wrapper .sheet.talents .right{float:right;padding-left:10px}#sheets .sheet-wrapper .sheet.talents .right>table:last-child{flex:none}#body>main>section{padding-top:80px;z-index:0;overflow:hidden;background-image:url("images/background.jpg");background-position:center center;background-size:cover;color:#010a13;display:flex;flex-direction:column}#body>main>section>.subtabs{flex:none}#body>main>section>.page{flex:1 1 auto;padding:11px 0 3px;font:14px/22px Alegreya Sans;letter-spacing:0.025em;color:#878683;display:flex;flex-wrap:nowrap;position:relative;overflow:hidden;height:100%}#body>main>section>.page .scroll{flex:1 1 100%}#body>main>section>.page .scroll .scroll-inner{padding:0 35px;display:flex;flex-wrap:wrap}#body>main>section>.page .scroll .scroll-inner>div:not(.btn):not(.btn-icon):not(.textfield):not(.dropdown),#body>main>section>.page .scroll .scroll-inner>h2,#body>main>section>.page .scroll .scroll-inner>h3,#body>main>section>.page .scroll .scroll-inner>h4,#body>main>section>.page .scroll .scroll-inner>ul{flex:1 0 auto;width:100%;margin-top:20px}#body>main>section>.page .scroll .scroll-inner .textfield+.btn-icon,#body>main>section>.page .scroll .scroll-inner .dropdown+.btn-icon{margin:10px 0 10px 11px}#body>main>section>.page>.options{flex:1 0 auto;width:200px;margin-left:35px}#body>main>section>.page>.options .radiobutton-group,#body>main>section>.page>.options .btn{width:100%}#body>main>section>.page>.options .btn{margin-top:10px}#body>main>section>.page .list table{width:100%;white-space:nowrap}#body>main>section>.page .list table td{padding:5px 5px 5px 11px}#body>main>section>.page .list table td.name{width:100%}#body>main>section>.page .list table td.name,#body>main>section>.page .list table td.fw{color:#f0e6d2}#body>main>section>.page .list table thead{font:bold 13px/22px Alegreya SC}#body>main>section>.page .list table thead tr td{border-bottom:1px solid rgba(255,255,255,0.075)}#body>main>section>.page .list table tbody tr:not(:last-child) td{height:36px;border-bottom:1px solid rgba(255,255,255,0.075)}#body>main>section>.page .list table tbody tr:hover{background:rgba(255,255,255,0.025)}#body>main>section>.page .list table tbody tr td{height:36px}#body>main>section>.page .list table tbody tr td.name h2,#body>main>section>.page .list table tbody tr td.fw{font:500 15px/15px Alegreya Sans;text-transform:none;color:#f0e6d2}#body>main>section>.page .list table tbody tr td.check,#body>main>section>.page .list table tbody tr td.skt{font:13px/13px Alegreya SC}#body>main>section>.page .list table tbody tr td.inc{font-weight:500;display:flex;justify-content:flex-end;align-items:center}#body>main>section>.page .list table tbody tr td.inc .btn{padding:0 14px 3px;min-width:auto;font-size:16px;flex:none}#body>main>section>.page .list table tbody tr td.inc .btn:nth-child(2){margin-left:4px}*{box-sizing:border-box;-ms-overflow-style:none}*:not(input):not(textarea){-moz-user-select:none;-o-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}html,body,#bodywrapper,#body{-webkit-touch-callout:none;-ms-scroll-translation:vertical-to-horizontal;-webkit-tap-highlight-color:transparent;touch-action:none;cursor:default;overflow:hidden;width:100%;height:100%;margin:0;padding:0;position:relative}#body{display:flex;background:#000;font:14px/23px Alegreya;position:relative}#body.logged-out{width:-webkit-calc(100% + 207px);width:calc(100% + 207px)}#body.logged-out .pane-wrapper{pointer-events:none}#body.logged-out .pane-wrapper .pane-externallinks-wrapper{opacity:0}#body.fullscreen{width:-webkit-calc(100% + 222px);width:calc(100% + 222px)}#body>div.wait{position:fixed;height:100%;width:100%;top:0;bottom:0;left:0;right:0;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:9000}#body>div.wait div{margin:auto;position:relative;border-top:4px solid rgba(75,227,222,0.2);border-right:4px solid rgba(75,227,222,0.2);border-bottom:4px solid rgba(75,227,222,0.2);border-left:4px solid #4be3de;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 0.8s infinite linear;animation:load8 0.8s infinite linear}#body>div.wait div,#body>div.wait div:after{border-radius:50%;width:44px;height:44px}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}a{color:#0080b9}a:hover{color:#52abd1}p{margin:10px 0 0}p:first-child{margin:0}p.featured{font-weight:500;color:#f1e6d4}h2,h3,h4,h5,h6{font-weight:normal;text-align:left;text-transform:none;padding:0;color:#f1e6d4;font:bold 18px/28px Alegreya;margin:20px 0 0;letter-spacing:0.05em}h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0 !important}h2{text-transform:uppercase}h4{font-size:bold 14px/22px Alegreya;color:#878683;letter-spacing:0.025em;text-transform:uppercase}div.space{height:30px}.rotate-180{transform:rotate(180deg)}.columns{margin:0 -15px;width:-webkit-calc(100% + 30px);width:calc(100% + 30px);display:flex;flex-wrap:wrap;justify-content:flex-start;padding-bottom:30px}.columns>*{text-align:justify;min-width:430px;flex:1 1 0;padding:40px 15px 0}.columns>.h3{padding-top:30px}.columns>.h4{padding-top:20px}.columns>.default-1-1{flex:1 100%}.columns>.default-1-2{flex:1 50%}.default-1-1{width:100%}.default-1-2{width:50%}.default-1-3{width:33.3333%}.default-1-4{width:25%}.default-1-5{width:20%}.default-1-6{width:16.6666%}.default-5-6{width:83.3333%}.default-1-9{width:11.11111%}table{border-collapse:collapse;border-spacing:0;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;table-layout:auto}.gm-test{width:100px;height:100px;position:absolute;top:-9999px;overflow:scroll;-ms-overflow-style:scrollbar}.gm-scrollbar-disable-selection{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gm-prevented{-webkit-overflow-scrolling:touch}.gm-prevented .gm-scrollbar{display:none}.gm-scrollbar-container{position:relative;overflow:hidden !important;width:100%;height:100%}.gm-scrollbar-container .gm-scroll-view{width:calc(100% + 17px) !important;height:100%;overflow:scroll;-webkit-overflow-scrolling:touch}.gm-scrollbar-container.gm-autoshow .gm-scrollbar{opacity:0;transition:opacity 120ms ease-out}.gm-scrollbar-container.gm-autoshow:hover .gm-scrollbar,.gm-scrollbar-container.gm-autoshow:focus .gm-scrollbar{opacity:1;transition:opacity 340ms ease-out}.gm-scrollbar{position:absolute;z-index:20;background:transparent}.gm-scrollbar.-vertical{width:5px;right:3px;top:0;bottom:0}.gm-scrollbar.-vertical .thumb{width:100%}.gm-scrollbar.-horizontal{height:5px;bottom:0;left:0;right:0;display:none}.gm-scrollbar.-horizontal .thumb{height:100%}.gm-scrollbar .thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:2.5px;background-color:#785a28}.gm-scrollbar .thumb:hover{background-color:#cdbe91}.gm-scrollbar .thumb:active{background-color:#463714}hr{border:0}hr.gold{box-shadow:0 1px 0px rgba(145,130,82,0.75) inset,0 0 2px #000;background:#4e4b38}hr.blue{background:#151f20}hr.horizontal{height:2px;width:100%;margin:10px 0 0}hr.vertical{width:2px;height:100%} diff --git a/js/actions/ProfileActions.js b/js/actions/ProfileActions.js index 31f7bf88..74721b5b 100644 --- a/js/actions/ProfileActions.js +++ b/js/actions/ProfileActions.js @@ -63,6 +63,11 @@ var ProfileActions = { AppDispatcher.dispatch({ actionType: ActionTypes.REROLL_WEIGHT }); + }, + endCharacterCreation: function() { + AppDispatcher.dispatch({ + actionType: ActionTypes.FINALIZE_CHARACTER_CREATION + }); } }; diff --git a/js/actions/ServerActions.js b/js/actions/ServerActions.js index a7f0e124..aefa25b6 100644 --- a/js/actions/ServerActions.js +++ b/js/actions/ServerActions.js @@ -174,6 +174,7 @@ var ServerActions = { }, loadHeroSuccess: function(id, data) { var short = HerolistStore.get(id); + data = JSON.parse(data); AppDispatcher.dispatch({ actionType: ActionTypes.RECEIVE_HERO, ...(Object.assign({}, short, data)) diff --git a/js/components/content/attributes/Attribute.js b/js/components/content/attributes/Attribute.js index aa45a43b..d0d56559 100644 --- a/js/components/content/attributes/Attribute.js +++ b/js/components/content/attributes/Attribute.js @@ -2,6 +2,7 @@ import AttributeCalc from './AttributeCalc'; import AttributeList from './AttributeList'; import AttributeStore from '../../../stores/AttributeStore'; import ELStore from '../../../stores/ELStore'; +import PhaseStore from '../../../stores/PhaseStore'; import React, { Component } from 'react'; import Scroll from '../../layout/Scroll'; @@ -10,40 +11,44 @@ class Attribute extends Component { state = { attributes: AttributeStore.getAllForView(), baseValues: AttributeStore.getBaseValues(), + phase: PhaseStore.get(), sum: AttributeStore.getSum() }; - - constructor(props) { - super(props); - } _updateAttributeStore = () => this.setState({ attributes: AttributeStore.getAllForView(), baseValues: AttributeStore.getBaseValues(), sum: AttributeStore.getSum() }); + _updatePhaseStore = () => this.setState({ + phase: PhaseStore.get() + }); componentDidMount() { AttributeStore.addChangeListener(this._updateAttributeStore); + PhaseStore.addChangeListener(this._updatePhaseStore ); } componentWillUnmount() { AttributeStore.removeChangeListener(this._updateAttributeStore); + PhaseStore.removeChangeListener(this._updatePhaseStore ); } render() { + const { baseValues, sum, ...other } = this.state; + const START_EL = ELStore.getStart(); - const sumMax = this.state.sum >= START_EL.max_attrsum; + const sumMax = sum >= START_EL.max_attrsum; const max = START_EL.max_attr; const element = this.state.attributes.length === 8 ? (
-
Punkte in Eigenschaften: {this.state.sum}
- - +
Punkte in Eigenschaften: {sum}
+ +
diff --git a/js/components/content/attributes/AttributeBorder.js b/js/components/content/attributes/AttributeBorder.js index a9aafe4f..25a5af42 100644 --- a/js/components/content/attributes/AttributeBorder.js +++ b/js/components/content/attributes/AttributeBorder.js @@ -12,10 +12,6 @@ class AttributeBorder extends Component { ]) }; - constructor(props) { - super(props); - } - render() { const className = classNames( 'attr', this.props.className ); diff --git a/js/components/content/attributes/AttributeCalc.js b/js/components/content/attributes/AttributeCalc.js index 1a2d4cb2..43ccb189 100644 --- a/js/components/content/attributes/AttributeCalc.js +++ b/js/components/content/attributes/AttributeCalc.js @@ -7,16 +7,13 @@ class AttributeCalc extends Component { static propTypes = { attributes: PropTypes.array.isRequired, - baseValues: PropTypes.object.isRequired + baseValues: PropTypes.object.isRequired, + phase: PropTypes.number.isRequired }; - constructor(props) { - super(props); - } - render() { - const { attributes, baseValues } = this.props; + const { attributes, baseValues, phase } = this.props; const calculated = [ { @@ -124,7 +121,13 @@ class AttributeCalc extends Component { return (
{ - calculated.map(attribute => ) + calculated.map(attribute => ( + + )) }
); diff --git a/js/components/content/attributes/AttributeCalcItem.js b/js/components/content/attributes/AttributeCalcItem.js index 47f3b699..c7bde58e 100644 --- a/js/components/content/attributes/AttributeCalcItem.js +++ b/js/components/content/attributes/AttributeCalcItem.js @@ -6,28 +6,25 @@ import React, { Component, PropTypes } from 'react'; class AttributeCalcItem extends Component { static propTypes = { - attribute: PropTypes.object.isRequired + attribute: PropTypes.object.isRequired, + phase: PropTypes.number.isRequired }; - constructor(props) { - super(props); - } - addMaxEnergyPoint = () => AttributeActions.addMaxEnergyPoint(this.props.attribute.label); render() { - const { disabledIncrease, disabledPermanent, ...other } = this.props.attribute; + const { attribute : { disabledIncrease, disabledPermanent, ...other }, phase } = this.props; - const increaseElement = this.props.attribute.hasOwnProperty('disabledIncrease') && other.value !== '-' ? ( + const increaseElement = this.props.attribute.hasOwnProperty('disabledIncrease') && other.value !== '-' && phase > 2 ? ( ) : null; - const rebuyElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' ? ( + const rebuyElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' && phase > 2 ? ( ) : null; - const rebuyUndoElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' ? ( + const rebuyUndoElement = this.props.attribute.hasOwnProperty('disabledPermanent') && other.value !== '-' && phase > 2 ? ( ) : null; diff --git a/js/components/content/attributes/AttributeList.js b/js/components/content/attributes/AttributeList.js index 3d2352ec..4bad66e1 100644 --- a/js/components/content/attributes/AttributeList.js +++ b/js/components/content/attributes/AttributeList.js @@ -6,13 +6,10 @@ class AttributeList extends Component { static propTypes = { attributes: PropTypes.array.isRequired, max: PropTypes.number.isRequired, + phase: PropTypes.number.isRequired, sumMax: PropTypes.bool.isRequired }; - constructor(props) { - super(props); - } - render() { const { attributes, ...other } = this.props; diff --git a/js/components/content/attributes/AttributeListItem.js b/js/components/content/attributes/AttributeListItem.js index 519258f9..1dbd8c64 100644 --- a/js/components/content/attributes/AttributeListItem.js +++ b/js/components/content/attributes/AttributeListItem.js @@ -6,24 +6,23 @@ import React, { Component, PropTypes } from 'react'; class AttributeListItem extends Component { static propTypes = { - attribute: PropTypes.object.isRequired + attribute: PropTypes.object.isRequired, + phase: PropTypes.number.isRequired }; - constructor(props) { - super(props); - } - addPoint = () => AttributeActions.addPoint(this.props.attribute.id); removePoint = () => AttributeActions.removePoint(this.props.attribute.id); render() { - const { id, short, value, disabledIncrease, disabledDecrease } = this.props.attribute; + const { attribute: { id, short, value, disabledIncrease, disabledDecrease }, phase } = this.props; return ( - + { phase < 3 ? ( + + ) : null } ); } diff --git a/js/components/content/disadv/DisAdvAddListItem.js b/js/components/content/disadv/DisAdvAddListItem.js index c7cfee1b..f61503d4 100644 --- a/js/components/content/disadv/DisAdvAddListItem.js +++ b/js/components/content/disadv/DisAdvAddListItem.js @@ -63,7 +63,6 @@ class DisAdvAddListItem extends Component { var inputElement2; if (['ADV_4','ADV_16','ADV_17','ADV_47','DISADV_48'].indexOf(disadv.id) > -1) { - console.log(disadv.sel); if (this.state.selected !== '') { ap = disadv.ap[DisAdvStore.get(this.state.selected).skt - 1]; } diff --git a/js/components/content/profile/Overview.js b/js/components/content/profile/Overview.js index be9bc78b..82f96f0d 100644 --- a/js/components/content/profile/Overview.js +++ b/js/components/content/profile/Overview.js @@ -1,5 +1,6 @@ import Avatar from '../../layout/Avatar'; import APStore from '../../../stores/APStore'; +import BorderButton from '../../layout/BorderButton'; import CultureStore from '../../../stores/rcp/CultureStore'; import DisAdvStore from '../../../stores/DisAdvStore'; import Dropdown from '../../layout/Dropdown'; @@ -10,6 +11,7 @@ import OverviewNameChange from './OverviewNameChange'; import ProfessionStore from '../../../stores/rcp/ProfessionStore'; import ProfessionVariantStore from '../../../stores/rcp/ProfessionVariantStore'; import RaceStore from '../../../stores/rcp/RaceStore'; +import PhaseStore from '../../../stores/PhaseStore'; import ProfileActions from '../../../actions/ProfileActions'; import ProfileStore from '../../../stores/ProfileStore'; import React, { Component } from 'react'; @@ -28,13 +30,10 @@ class Overview extends Component { eyes: ProfileStore.getEyes(), size: ProfileStore.getSize(), weight: ProfileStore.getWeight(), + phase: PhaseStore.get(), showImageUpload: false, editName: false }; - - constructor(props) { - super(props); - } _updateProfileStore = () => this.setState({ name: ProfileStore.getName(), @@ -45,6 +44,9 @@ class Overview extends Component { size: ProfileStore.getSize(), weight: ProfileStore.getWeight() }); + _updatePhaseStore = () => this.setState({ + phase: PhaseStore.get() + }); showImageUpload = () => ProfileActions.showImageUpload(); changeName = name => { @@ -61,18 +63,21 @@ class Overview extends Component { rerollEyes = () => ProfileActions.rerollEyes(); rerollSize = () => ProfileActions.rerollSize(); rerollWeight = () => ProfileActions.rerollWeight(); + endCharacterCreation = () => ProfileActions.endCharacterCreation(); componentDidMount() { + PhaseStore.addChangeListener(this._updatePhaseStore ); ProfileStore.addChangeListener(this._updateProfileStore ); } componentWillUnmount() { + PhaseStore.removeChangeListener(this._updatePhaseStore ); ProfileStore.removeChangeListener(this._updateProfileStore ); } render() { - const { editName, name, portrait, hair, eyes, size, weight } = this.state; + const { editName, name, portrait, hair, eyes, size, weight, phase } = this.state; const hairArr = RaceStore.getCurrent() ? [ ['blauschwarz',1], @@ -198,10 +203,27 @@ class Overview extends Component { onChange={this.changeWeight} /> -

Vorteile

- -

Nachteile

- + { + phase === 2 ? ( +
+ +
+ ) : null + } + { + phase === 3 ? ( +
+

Vorteile

+ +

Nachteile

+ +
+ ) : null + } ); diff --git a/js/components/content/profile/Profile.js b/js/components/content/profile/Profile.js index 9aaa30f4..89eba92c 100644 --- a/js/components/content/profile/Profile.js +++ b/js/components/content/profile/Profile.js @@ -1,4 +1,5 @@ import Overview from './Overview'; +import PhaseStore from '../../../stores/PhaseStore'; import React, { Component } from 'react'; import Sheets from './Sheets'; import SubTabs from '../../layout/SubTabs'; @@ -6,20 +7,31 @@ import SubTabs from '../../layout/SubTabs'; class Profile extends Component { state = { + phase: PhaseStore.get(), tab: 'overview' }; - constructor(props) { - super(props); - } + _updatePhaseStore = () => this.setState({ + phase: PhaseStore.get() + }); handleClick = tab => this.setState({ tab }); + + componentDidMount() { + PhaseStore.addChangeListener(this._updatePhaseStore ); + } + + componentWillUnmount() { + PhaseStore.removeChangeListener(this._updatePhaseStore ); + } render() { + const { phase, tab } = this.state; + var element; - switch (this.state.tab) { + switch (tab) { case 'overview': element = ; break; @@ -43,7 +55,8 @@ class Profile extends Component { // }, { label: 'Heldenbogen', - tag: 'sheets' + tag: 'sheets', + disabled: phase < 3 } ]} active={this.state.tab} diff --git a/js/components/content/skills/CombatTechniques.js b/js/components/content/skills/CombatTechniques.js index 1b6e1455..de4954dd 100644 --- a/js/components/content/skills/CombatTechniques.js +++ b/js/components/content/skills/CombatTechniques.js @@ -1,9 +1,11 @@ import BorderButton from '../../layout/BorderButton'; import CombatTechniquesActions from '../../../actions/CombatTechniquesActions'; import CombatTechniquesStore from '../../../stores/CombatTechniquesStore'; +import PhaseStore from '../../../stores/PhaseStore'; import RadioButtonGroup from '../../layout/RadioButtonGroup'; import React, { Component } from 'react'; import Scroll from '../../layout/Scroll'; +import SkillListItem from './SkillListItem'; import TextField from '../../layout/TextField'; class CombatTechniques extends Component { @@ -11,7 +13,8 @@ class CombatTechniques extends Component { state = { combattech: CombatTechniquesStore.getAllForView(), filter: CombatTechniquesStore.getFilter(), - sortOrder: CombatTechniquesStore.getSortOrder() + sortOrder: CombatTechniquesStore.getSortOrder(), + phase: PhaseStore.get() }; constructor(props) { @@ -82,19 +85,22 @@ class CombatTechniques extends Component { this.state.combattech.map(ct => { const leit = ct.leit.map(attr => ATTR[attr]).join('/'); return ( - - {GR[ct.gr - 1]} -

{ct.name}

- {ct.fw} + {leit} {ct.at} {ct.gr == 2 ? '--' : ct.pa} - {COMP[ct.skt - 1]} - - - - - + ); }) } diff --git a/js/components/content/skills/Liturgies.js b/js/components/content/skills/Liturgies.js index 3db615d2..83db9768 100644 --- a/js/components/content/skills/Liturgies.js +++ b/js/components/content/skills/Liturgies.js @@ -1,6 +1,7 @@ import BorderButton from '../../layout/BorderButton'; import LiturgiesActions from '../../../actions/LiturgiesActions'; import LiturgiesStore from '../../../stores/LiturgiesStore'; +import PhaseStore from '../../../stores/PhaseStore'; import RadioButtonGroup from '../../layout/RadioButtonGroup'; import React, { Component } from 'react'; import Scroll from '../../layout/Scroll'; @@ -16,6 +17,7 @@ class Liturgies extends Component { addChantsDisabled: LiturgiesStore.isActivationDisabled(), filter: LiturgiesStore.getFilter(), sortOrder: LiturgiesStore.getSortOrder(), + phase: PhaseStore.get(), showAddSlidein: false }; @@ -175,7 +177,7 @@ class Liturgies extends Component { key={liturgy.id} group={GR[liturgy.gr - 1]} name={name} - removePoint={this.removePoint.bind(null, liturgy.id)} + removePoint={this.state.phase < 3 ? this.removePoint.bind(null, liturgy.id) : undefined} removeDisabled={liturgy.disabledDecrease} {...obj} > {aspc} diff --git a/js/components/content/skills/SkillListItem.js b/js/components/content/skills/SkillListItem.js index d3bb548b..6a0f8fe8 100644 --- a/js/components/content/skills/SkillListItem.js +++ b/js/components/content/skills/SkillListItem.js @@ -12,6 +12,7 @@ class SkillListItem extends Component { fw: PropTypes.number, children: PropTypes.node, check: PropTypes.array, + checkDisabled: PropTypes.bool, checkmod: PropTypes.string, skt: PropTypes.number, isNotActive: PropTypes.bool, @@ -29,7 +30,7 @@ class SkillListItem extends Component { render() { - const { typ, untyp, group, name, fw, children, check, checkmod, skt, isNotActive, activate, activateDisabled, addPoint, addDisabled, removePoint, removeDisabled } = this.props; + const { typ, untyp, group, name, fw, children, check, checkDisabled, checkmod, skt, isNotActive, activate, activateDisabled, addPoint, addDisabled, removePoint, removeDisabled } = this.props; const className = classNames({ 'typ': typ, @@ -57,9 +58,9 @@ class SkillListItem extends Component { ATTR_8: 'KK' }; - const checkElement = ( + const checkElement = !checkDisabled ? ( {check ? `${check.map(attr => ATTR[attr]).join('/')} ${checkmod ? `(+${checkmod})` : ''}` : null} - ); + ) : null; const COMP = ['A', 'B', 'C', 'D', 'E']; @@ -78,7 +79,7 @@ class SkillListItem extends Component { ) : ( { addPoint ? : null } - + { removePoint ? : null } ); diff --git a/js/components/content/skills/SpecialAbilities.js b/js/components/content/skills/SpecialAbilities.js index 59494173..f36bf553 100644 --- a/js/components/content/skills/SpecialAbilities.js +++ b/js/components/content/skills/SpecialAbilities.js @@ -1,5 +1,6 @@ import BorderButton from '../../layout/BorderButton'; import Dropdown from '../../layout/Dropdown'; +import PhaseStore from '../../../stores/PhaseStore'; import RadioButtonGroup from '../../layout/RadioButtonGroup'; import React, { Component } from 'react'; import Scroll from '../../layout/Scroll'; @@ -17,6 +18,7 @@ class SpecialAbilities extends Component { saDeactive: SpecialAbilitiesStore.getDeactiveForView(), filter: SpecialAbilitiesStore.getFilter(), sortOrder: SpecialAbilitiesStore.getSortOrder(), + phase: PhaseStore.get(), showAddSlidein: false }; @@ -103,12 +105,14 @@ class SpecialAbilities extends Component { Gruppe Sonderfertigkeit AP - + { this.state.phase < 3 ? ( + + ) : null } { - this.state.saActive.map((sa, index) => ) + this.state.saActive.map((sa, index) => ) } diff --git a/js/components/content/skills/SpecialAbilitiesListRemoveItem.js b/js/components/content/skills/SpecialAbilitiesListRemoveItem.js index 67c11f52..61319b44 100644 --- a/js/components/content/skills/SpecialAbilitiesListRemoveItem.js +++ b/js/components/content/skills/SpecialAbilitiesListRemoveItem.js @@ -7,7 +7,8 @@ import TextField from '../../layout/TextField'; class SpecialAbilitiesListRemoveItem extends Component { static propTypes = { - item: PropTypes.object + item: PropTypes.object, + phase: PropTypes.number }; state = { @@ -40,22 +41,29 @@ class SpecialAbilitiesListRemoveItem extends Component { var name = item.name; var tierElement; + var addSpecial; var roman = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X']; if (item.tiers !== undefined && item.tiers !== null) { var array = []; - if (item.id === 'SA_30') array.push(['MS', 4]); + if (item.id === 'SA_30' && (item.tier === 4 || this.props.phase < 3)) array.push(['MS', 4]); for (let i = 0; i < item.tiers; i++ ) { - array.push([roman[i], i + 1]); + if (this.props.phase < 3 || i + 1 >= item.tier) { + array.push([roman[i], i + 1]); + } + } + if (array.length > 1) { + tierElement = ( + + ); + } else { + addSpecial = ' ' + array[0][0]; } - tierElement = ( - - ); ap = item.tier === 4 && item.id === 'SA_30' ? 0 : item.ap * item.tier; } @@ -64,6 +72,7 @@ class SpecialAbilitiesListRemoveItem extends Component { if (item.hasOwnProperty('sid')) args.sid = item.sid; if (item.hasOwnProperty('add')) name += ` (${item.add})`; + if (addSpecial) name += addSpecial; const GROUPS = ['Allgemein', 'Schicksal', 'Kampf', 'Magisch', 'Magisch (Stab)', 'Magisch (Hexe)', 'Geweiht']; @@ -77,9 +86,11 @@ class SpecialAbilitiesListRemoveItem extends Component { {ap} - - - + { this.props.phase < 3 ? ( + + + + ) : null } ); } diff --git a/js/components/content/skills/Spells.js b/js/components/content/skills/Spells.js index a80ac861..19892f96 100644 --- a/js/components/content/skills/Spells.js +++ b/js/components/content/skills/Spells.js @@ -1,4 +1,5 @@ import BorderButton from '../../layout/BorderButton'; +import PhaseStore from '../../../stores/PhaseStore'; import RadioButtonGroup from '../../layout/RadioButtonGroup'; import React, { Component } from 'react'; import Scroll from '../../layout/Scroll'; @@ -16,6 +17,7 @@ class Spells extends Component { addSpellsDisabled: SpellsStore.isActivationDisabled(), filter: SpellsStore.getFilter(), sortOrder: SpellsStore.getSortOrder(), + phase: PhaseStore.get(), showAddSlidein: false }; @@ -181,7 +183,7 @@ class Spells extends Component { key={spell.id} group={GR[spell.gr - 1]} name={name} - removePoint={this.removePoint.bind(null, spell.id)} + removePoint={this.state.phase < 3 ? this.removePoint.bind(null, spell.id) : undefined} removeDisabled={spell.disabledDecrease} {...obj} > {MERK[spell.merk - 1]} diff --git a/js/components/content/skills/Talents.js b/js/components/content/skills/Talents.js index f876d00d..c6658c7e 100644 --- a/js/components/content/skills/Talents.js +++ b/js/components/content/skills/Talents.js @@ -1,6 +1,7 @@ import BorderButton from '../../layout/BorderButton'; import Checkbox from '../../layout/Checkbox'; import CultureStore from '../../../stores/rcp/CultureStore'; +import PhaseStore from '../../../stores/PhaseStore'; import RadioButtonGroup from '../../layout/RadioButtonGroup'; import React, { Component } from 'react'; import Scroll from '../../layout/Scroll'; @@ -12,11 +13,12 @@ import TextField from '../../layout/TextField'; class Talents extends Component { state = { - talents: TalentsStore.getAllForView(), + list: TalentsStore.getAllForView(), filter: TalentsStore.getFilter(), sortOrder: TalentsStore.getSortOrder(), talentRating: TalentsStore.getTalentRating(), - currentCulture: CultureStore.getCurrent() + currentCulture: CultureStore.getCurrent(), + phase: PhaseStore.get() }; constructor(props) { @@ -24,7 +26,7 @@ class Talents extends Component { } _updateTalentsStore = () => this.setState({ - talents: TalentsStore.getAllForView(), + list: TalentsStore.getAllForView(), filter: TalentsStore.getFilter(), sortOrder: TalentsStore.getSortOrder(), talentRating: TalentsStore.getTalentRating() @@ -82,7 +84,7 @@ class Talents extends Component { { - this.state.talents.map(talent => ( + this.state.list.map(talent => ( -1} @@ -94,7 +96,7 @@ class Talents extends Component { skt={talent.skt} addPoint={this.addPoint.bind(null, talent.id)} addDisabled={talent.disabledIncrease} - removePoint={this.removePoint.bind(null, talent.id)} + removePoint={this.state.phase < 3 ? this.removePoint.bind(null, talent.id) : undefined} removeDisabled={talent.disabledDecrease} /> )) } diff --git a/js/components/layout/BorderButton.js b/js/components/layout/BorderButton.js index 731d9877..179cd3a6 100644 --- a/js/components/layout/BorderButton.js +++ b/js/components/layout/BorderButton.js @@ -11,13 +11,9 @@ class BorderButton extends Component { label: PropTypes.string }; - constructor(props) { - super(props); - } - render() { - const className = classNames('btn', this.props.primary && 'primary', this.props.fullWidth && 'fullWidth', this.props.disabled && 'disabled', this.props.className); + const className = classNames('btn', this.props.primary && 'btn-primary', this.props.fullWidth && 'fullWidth', this.props.disabled && 'disabled', this.props.className); const labelTextElement = this.props.label ? ( {this.props.label} diff --git a/js/components/layout/IconButton.js b/js/components/layout/IconButton.js index 85424161..9857585e 100644 --- a/js/components/layout/IconButton.js +++ b/js/components/layout/IconButton.js @@ -17,7 +17,7 @@ class IconButton extends Component { render() { - const className = classNames('iconbutton', this.props.primary && 'primary', this.props.disabled && 'disabled', this.props.className); + const className = classNames('btn-icon', this.props.primary && 'btn-primary', this.props.disabled && 'disabled', this.props.className); return (
diff --git a/js/constants/ActionTypes.js b/js/constants/ActionTypes.js index ed67ae28..9abaeb6b 100644 --- a/js/constants/ActionTypes.js +++ b/js/constants/ActionTypes.js @@ -52,6 +52,7 @@ export default keyMirror({ // PhaseStore INCREASE_PHASE: null, RESET_PHASE: null, + FINALIZE_CHARACTER_CREATION: null, // CharbaseStore SET_RULES: null, diff --git a/js/stores/AttributeStore.js b/js/stores/AttributeStore.js index b228da36..82ff2a09 100644 --- a/js/stores/AttributeStore.js +++ b/js/stores/AttributeStore.js @@ -129,8 +129,7 @@ var AttributeStore = Object.assign({}, EventEmitter.prototype, { }, getAllForView: function() { - // var phase = PhaseStore.get(); - var phase = 1; + var phase = PhaseStore.get(); var attrsObj = ListStore.getObjByCategory(CATEGORY); var attrs = []; diff --git a/js/stores/CombatTechniquesStore.js b/js/stores/CombatTechniquesStore.js index 930a987f..2f8b7ebb 100644 --- a/js/stores/CombatTechniquesStore.js +++ b/js/stores/CombatTechniquesStore.js @@ -31,7 +31,7 @@ function _updateSortOrder(option) { function _clear() { ListStore.getAllByCategory(CATEGORY).forEach(e => { - ListStore.setSR(e.id, 0); + ListStore.setSR(e.id, 6); ListStore.setProperty(e.id, 'dependencies', []); }); } @@ -105,8 +105,7 @@ var CombatTechniquesStore = Object.assign({}, EventEmitter.prototype, { }, getAllForView: function() { - // var phase = PhaseStore.get(); - var phase = 1; + var phase = PhaseStore.get(); var combatTechniquesObj = ListStore.getObjByCategory(CATEGORY); var combatTechniques = []; @@ -123,7 +122,7 @@ var CombatTechniquesStore = Object.assign({}, EventEmitter.prototype, { if (phase < 3) _max = ELStore.getStart().max_combattech + _max_bonus; else { - let primary = leit.map(e => this.get(`ATTR_${e}`).value); + let primary = leit.map(e => ListStore.get(e).value); _max = Math.max(...primary) + 2 + _max_bonus; } combatTechnique.disabledIncrease = fw >= _max; diff --git a/js/stores/HistoryStore.js b/js/stores/HistoryStore.js index 1b865443..c6cf4d66 100644 --- a/js/stores/HistoryStore.js +++ b/js/stores/HistoryStore.js @@ -11,35 +11,68 @@ import reactAlert from '../utils/reactAlert'; import reqPurchase from '../utils/reqPurchase'; var _history = []; +var _lastSaveIndex = -1; -function _add(obj) { - _history.push(obj); +function _add(actionType, costs = 0, previousState = null, options) { + _history.push({ + actionType, + costs, + previousState, + options + }); } function _clear() { _history = []; } +function _resetSaveIndex() { + _lastSaveIndex = _history.length - 1; +} + function _updateAll(array) { _history = array; + _lastSaveIndex = _history.length - 1; } function _assignRCP(selections) { - // if (!selections.useCulturePackage) { - // _used -= _rcp[1]; - // } + let race = RaceStore.getCurrent(); + _add(ActionTypes.SELECT_RACE, race.ap, undefined, race.id); + let culture = CultureStore.getCurrent(); + _add(ActionTypes.SELECT_CULTURE, culture.ap, undefined, race.id); + let profession = ProfessionStore.getCurrent() || { id: 'P_0', ap: 0 }; + _add(ActionTypes.SELECT_PROFESSION, profession.ap, undefined, profession.id); + let professionVariant = ProfessionVariantStore.getCurrent(); + if (professionVariant) { + _add(ActionTypes.SELECT_PROFESSION_VARIANT, professionVariant.ap, undefined, professionVariant.id); + } - // if (selections.buyLiteracy) { - // const culture = CultureStore.getCurrent(); - // let id = culture.literacy.length > 1 ? selections.litc : culture.literacy[0]; - // _used += ListStore.get('SA_28').sel[id - 1][2]; - // } + let { attrSel, useCulturePackage, lang, buyLiteracy, litc, cantrips, combattech, curses, langLitc, spec } = selections; - // let p = ProfessionStore.getCurrent(); - // if (p) { - // let apCosts = reqPurchase(p.req); - // _used += apCosts; - // } + _add('SELECT_ATTRIBUTE_MOD', undefined, undefined, attrSel); + _add('PURCHASE_CULTURE_PACKAGE', undefined, undefined, useCulturePackage); + if (lang !== 0) { + _add('SELECT_MOTHER_TONGUE', undefined, undefined, lang); + } + _add('PURCHASE_MAIN_LITERACY', undefined, undefined, buyLiteracy); + if (spec[0] !== null || spec[1] !== '') { + _add('SELECT_SKILL_SPECIALISATION', undefined, undefined, spec); + } + if (litc !== 0) { + _add('SELECT_MAIN_LITERACY', undefined, undefined, litc); + } + if (cantrips.size > 0) { + _add('SELECT_CANTRIPS', undefined, undefined, Array.from(cantrips)); + } + if (combattech.size > 0) { + _add('SELECT_COMBAT_TECHNIQUES', undefined, undefined, Array.from(combattech)); + } + if (curses.size > 0) { + _add('SELECT_CURSES', undefined, undefined, Array.from(curses)); + } + if (langLitc.size > 0) { + _add('SELECT_LANGUAGES_AND_LITERACIES', undefined, undefined, Array.from(langLitc)); + } } var HistoryStore = Object.assign({}, EventEmitter.prototype, { @@ -72,18 +105,31 @@ HistoryStore.dispatchToken = AppDispatcher.register( function( payload ) { case ActionTypes.CLEAR_HERO: _clear(); + _resetSaveIndex(); break; case ActionTypes.RECEIVE_HERO: + _clear(); _updateAll(payload.history); + _resetSaveIndex(); break; case ActionTypes.ASSIGN_RCP_ENTRIES: _assignRCP(payload.selections); + _resetSaveIndex(); + break; + + case ActionTypes.FINALIZE_CHARACTER_CREATION: + _resetSaveIndex(); break; case ActionTypes.CREATE_NEW_HERO: _clear(); + _resetSaveIndex(); + break; + + case ActionTypes.SAVE_HERO_SUCCESS: + _resetSaveIndex(); break; default: diff --git a/js/stores/LiturgiesStore.js b/js/stores/LiturgiesStore.js index 58a00182..6cc791e5 100644 --- a/js/stores/LiturgiesStore.js +++ b/js/stores/LiturgiesStore.js @@ -145,8 +145,7 @@ var LiturgiesStore = Object.assign({}, EventEmitter.prototype, { }, getActiveForView: function() { - // var phase = PhaseStore.get(); - var phase = 1; + var phase = PhaseStore.get(); var liturgiesObj = ListStore.getObjByCategory(CATEGORY); var liturgies = []; @@ -177,7 +176,7 @@ var LiturgiesStore = Object.assign({}, EventEmitter.prototype, { if (phase < 3) _max = ELStore.getStart().max_skill + _max_bonus; else { - let checkValues = liturgy.check.map(attr => this.get(`ATTR_${attr}`).value); + let checkValues = liturgy.check.map(attr => ListStore.get(attr).value); _max = Math.max(...checkValues) + 2 + _max_bonus; } aspc.some(e => { diff --git a/js/stores/PhaseStore.js b/js/stores/PhaseStore.js index 0a1b7188..21b7ad90 100644 --- a/js/stores/PhaseStore.js +++ b/js/stores/PhaseStore.js @@ -48,6 +48,10 @@ PhaseStore.dispatchToken = AppDispatcher.register( function( payload ) { _update(2); break; + case ActionTypes.FINALIZE_CHARACTER_CREATION: + _update(3); + break; + default: return true; } diff --git a/js/stores/SpellsStore.js b/js/stores/SpellsStore.js index c74784c6..3ac29eee 100644 --- a/js/stores/SpellsStore.js +++ b/js/stores/SpellsStore.js @@ -172,8 +172,7 @@ var SpellsStore = Object.assign({}, EventEmitter.prototype, { }, getActiveForView: function() { - // var phase = PhaseStore.get(); - var phase = 1; + var phase = PhaseStore.get(); var spellsObj = ListStore.getObjByCategory(CATEGORY); var spells = []; @@ -209,7 +208,7 @@ var SpellsStore = Object.assign({}, EventEmitter.prototype, { if (phase < 3) _max = ELStore.getStart().max_skill + _max_bonus; else { - let checkValues = spell.check.map(attr => this.get(`ATTR_${attr}`).value); + let checkValues = spell.check.map(attr => ListStore.get(attr).value); _max = Math.max(...checkValues) + 2 + _max_bonus; } if (SA_88_ACTIVE.indexOf(merk) === -1) diff --git a/js/stores/TalentsStore.js b/js/stores/TalentsStore.js index 7e71af09..013ab66d 100644 --- a/js/stores/TalentsStore.js +++ b/js/stores/TalentsStore.js @@ -109,8 +109,7 @@ var TalentsStore = Object.assign({}, EventEmitter.prototype, { }, getAllForView: function() { - // var phase = PhaseStore.get(); - var phase = 1; + var phase = PhaseStore.get(); var talentsObj = ListStore.getObjByCategory(CATEGORY); var talents = []; @@ -127,7 +126,7 @@ var TalentsStore = Object.assign({}, EventEmitter.prototype, { if (phase < 3) _max = ELStore.getStart().max_skill + _max_bonus; else { - let checkValues = check.map(attr => this.get(`ATTR_${attr}`).value); + let checkValues = check.map(attr => ListStore.get(attr).value); _max = Math.max(...checkValues) + 2 + _max_bonus; } talent.disabledIncrease = fw >= _max; diff --git a/js/utils/WebAPIUtils.js b/js/utils/WebAPIUtils.js index 1f41d47b..38da7074 100644 --- a/js/utils/WebAPIUtils.js +++ b/js/utils/WebAPIUtils.js @@ -250,13 +250,13 @@ var WebAPIUtils = { }, loadHero: function(id) { ServerActions.startLoading(); - ServerActions.loadHeroSuccess(id, { + ServerActions.loadHeroSuccess(id, `{ "sex":"m", "pers":{ - _hair: 1, - _eyes: 1, - _size: 167, - _weight: 71 + "_hair": 1, + "_eyes": 1, + "_size": 167, + "_weight": 71 }, "attr":{ "values":[ @@ -291,8 +291,9 @@ var WebAPIUtils = { }, "sa":{ "active":[["SA_10",[["TAL_48","Test"]]],["SA_28",[9,14]],["SA_30",[[8,4],[23,2],[6,1]]]] - } - }); + }, + "history": [] + }`); // return new Promise(function(){ // jQuery.ajax( // { @@ -361,19 +362,19 @@ var WebAPIUtils = { } else if (type === 'file') { finalData = new FormData(data); } - // return new Promise(function(){ - // jQuery.ajax({ - // url: 'http://cha5app.dsa-sh.de/php/uploadheropic.php?hid=' + ProfileStore.getID() + '&type=' + type + urlAdd, - // type: 'POST', - // data: finalData, - // success: function(result) { + return new Promise(function(){ + jQuery.ajax({ + url: 'http://cha5app.dsa-sh.de/php/uploadheropic.php?hid=' + ProfileStore.getID() + '&type=' + type + urlAdd, + type: 'POST', + data: finalData, + success: function(result) { ServerActions.changeHeroAvatarSuccess(type === 'file' ? result : data); - // }, - // error: function(error) { - // ServerActions.connectionError(error); - // } - // }); - // }); + }, + error: function(error) { + ServerActions.connectionError(error); + } + }); + }); }, deleteHero: function(heroid) { ServerActions.startLoading();