Added undo for additional LP/AE/KP

This commit is contained in:
Lukas Obermann
2016-12-20 11:18:38 +13:00
parent ccc48753c8
commit 9c3e402041
5 changed files with 146 additions and 52 deletions
+70 -22
View File
@@ -29548,10 +29548,16 @@
var _RequirementsStore2 = _interopRequireDefault(_RequirementsStore);
var _secondaryAttributes = __webpack_require__(336);
var secondaryAttributes = _interopRequireWildcard(_secondaryAttributes);
var _Store = __webpack_require__(281);
var _Store2 = _interopRequireDefault(_Store);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _history = [];
@@ -29723,6 +29729,16 @@
}
break;
case _ActionTypes2.default.ADD_MAX_ENERGY_POINT:
if (_RequirementsStore2.default.isValid()) {
const id = payload.id;
const oldValue = secondaryAttributes.get(id);
const newValue = oldValue + 1;
const cost = _RequirementsStore2.default.getCurrentCost();
_add(payload.actionType, cost, { id, value: newValue }, { value: oldValue });
}
break;
case _ActionTypes2.default.REMOVE_ATTRIBUTE_POINT:
case _ActionTypes2.default.REMOVE_TALENT_POINT:
case _ActionTypes2.default.REMOVE_COMBATTECHNIQUE_POINT:
@@ -31130,6 +31146,10 @@
var _Categories2 = _interopRequireDefault(_Categories);
var _HistoryStore = __webpack_require__(327);
var _HistoryStore2 = _interopRequireDefault(_HistoryStore);
var _RaceStore = __webpack_require__(331);
var _RaceStore2 = _interopRequireDefault(_RaceStore);
@@ -31168,6 +31188,20 @@
}
}
function _removeMaxEnergyPoint(id) {
switch (id) {
case 'LP':
_le_add--;
break;
case 'AE':
_ae_add--;
break;
case 'KP':
_ke_add--;
break;
}
}
function _clear() {
_le = 0;
_le_add = 0;
@@ -31243,35 +31277,49 @@
AttributeStore.dispatchToken = _AppDispatcher2.default.register(payload => {
_AppDispatcher2.default.waitFor([_RequirementsStore2.default.dispatchToken]);
_AppDispatcher2.default.waitFor([_RequirementsStore2.default.dispatchToken, _HistoryStore2.default.dispatchToken]);
switch (payload.actionType) {
if (payload.undoAction) {
switch (payload.actionType) {
case _ActionTypes2.default.ADD_ATTRIBUTE_POINT:
case _ActionTypes2.default.REMOVE_ATTRIBUTE_POINT:
break;
case _ActionTypes2.default.CLEAR_HERO:
case _ActionTypes2.default.CREATE_NEW_HERO:
_clear();
break;
case _ActionTypes2.default.ADD_MAX_ENERGY_POINT:
_removeMaxEnergyPoint(payload.options.id);
break;
case _ActionTypes2.default.RECEIVE_HERO:
_updateAll(payload.attr);
break;
default:
return true;
}
} else {
switch (payload.actionType) {
case _ActionTypes2.default.CLEAR_HERO:
case _ActionTypes2.default.CREATE_NEW_HERO:
_clear();
break;
case _ActionTypes2.default.ADD_ATTRIBUTE_POINT:
case _ActionTypes2.default.REMOVE_ATTRIBUTE_POINT:
break;
case _ActionTypes2.default.RECEIVE_HERO:
_updateAll(payload.attr);
break;
case _ActionTypes2.default.ADD_MAX_ENERGY_POINT:
if (_RequirementsStore2.default.isValid()) {
_addMaxEnergyPoint(payload.id);
}
break;
case _ActionTypes2.default.ADD_ATTRIBUTE_POINT:
case _ActionTypes2.default.REMOVE_ATTRIBUTE_POINT:
break;
case _ActionTypes2.default.ASSIGN_RCP_ENTRIES:
_assignRCP(payload.selections);
break;
case _ActionTypes2.default.ADD_MAX_ENERGY_POINT:
if (_RequirementsStore2.default.isValid()) {
_addMaxEnergyPoint(payload.id);
}
break;
default:
return true;
case _ActionTypes2.default.ASSIGN_RCP_ENTRIES:
_assignRCP(payload.selections);
break;
default:
return true;
}
}
AttributeStore.emitChange();
+1 -1
View File
File diff suppressed because one or more lines are too long
+53 -23
View File
@@ -2,6 +2,7 @@ import { getAllByCategory } from './ListStore';
import ActionTypes from '../constants/ActionTypes';
import AppDispatcher from '../dispatcher/AppDispatcher';
import Categories from '../constants/Categories';
import HistoryStore from './HistoryStore';
import RaceStore from './RaceStore';
import RequirementsStore from './RequirementsStore';
import Store from './Store';
@@ -30,6 +31,20 @@ function _addMaxEnergyPoint(id) {
}
}
function _removeMaxEnergyPoint(id) {
switch (id) {
case 'LP':
_le_add--;
break;
case 'AE':
_ae_add--;
break;
case 'KP':
_ke_add--;
break;
}
}
function _clear() {
_le = 0;
_le_add = 0;
@@ -105,35 +120,50 @@ const AttributeStore = new _AttributeStore();
AttributeStore.dispatchToken = AppDispatcher.register(payload => {
AppDispatcher.waitFor([RequirementsStore.dispatchToken]);
AppDispatcher.waitFor([RequirementsStore.dispatchToken, HistoryStore.dispatchToken]);
switch( payload.actionType ) {
if (payload.undoAction) {
switch(payload.actionType) {
case ActionTypes.ADD_ATTRIBUTE_POINT:
case ActionTypes.REMOVE_ATTRIBUTE_POINT:
break;
case ActionTypes.CLEAR_HERO:
case ActionTypes.CREATE_NEW_HERO:
_clear();
break;
case ActionTypes.ADD_MAX_ENERGY_POINT:
_removeMaxEnergyPoint(payload.options.id);
break;
case ActionTypes.RECEIVE_HERO:
_updateAll(payload.attr);
break;
default:
return true;
}
}
else {
switch(payload.actionType) {
case ActionTypes.CLEAR_HERO:
case ActionTypes.CREATE_NEW_HERO:
_clear();
break;
case ActionTypes.ADD_ATTRIBUTE_POINT:
case ActionTypes.REMOVE_ATTRIBUTE_POINT:
break;
case ActionTypes.RECEIVE_HERO:
_updateAll(payload.attr);
break;
case ActionTypes.ADD_MAX_ENERGY_POINT:
if (RequirementsStore.isValid()) {
_addMaxEnergyPoint(payload.id);
}
break;
case ActionTypes.ADD_ATTRIBUTE_POINT:
case ActionTypes.REMOVE_ATTRIBUTE_POINT:
break;
case ActionTypes.ASSIGN_RCP_ENTRIES:
_assignRCP(payload.selections);
break;
default:
return true;
case ActionTypes.ADD_MAX_ENERGY_POINT:
if (RequirementsStore.isValid()) {
_addMaxEnergyPoint(payload.id);
}
break;
case ActionTypes.ASSIGN_RCP_ENTRIES:
_assignRCP(payload.selections);
break;
default:
return true;
}
}
AttributeStore.emitChange();
+11
View File
@@ -7,6 +7,7 @@ import ProfessionStore from './ProfessionStore';
import ProfessionVariantStore from './ProfessionVariantStore';
import RaceStore from './RaceStore';
import RequirementsStore from './RequirementsStore';
import * as secondaryAttributes from '../utils/secondaryAttributes';
import Store from './Store';
var _history = [];
@@ -164,6 +165,16 @@ HistoryStore.dispatchToken = AppDispatcher.register(payload => {
_add(payload.actionType, cost, { id, value: newValue }, { value: oldValue });
}
break;
case ActionTypes.ADD_MAX_ENERGY_POINT:
if (RequirementsStore.isValid()) {
const id = payload.id;
const oldValue = secondaryAttributes.get(id);
const newValue = oldValue + 1;
const cost = RequirementsStore.getCurrentCost();
_add(payload.actionType, cost, { id, value: newValue }, { value: oldValue });
}
break;
case ActionTypes.REMOVE_ATTRIBUTE_POINT:
case ActionTypes.REMOVE_TALENT_POINT:
+11 -6
View File
@@ -27,7 +27,7 @@
> .short {
font: bold 14px/28px Alegreya;
color: #f1e6d4;
color: $font-color1;
letter-spacing: 0.05em;
text-transform: uppercase;
text-align: center;
@@ -36,20 +36,20 @@
> .value {
border: 2px solid transparent;
padding: 2px;
background: #0d141c;
background: $background4;
> div {
border: 1px solid #3c3c41;
border: 1px solid $font-color3;
padding: 1px;
> div {
@include size(45px);
text-align: center;
font: bold 28px/45px Alegreya Sans;
color: #f1e6d4;
color: $font-color1;
letter-spacing: 0.05em;
text-transform: uppercase;
background: $pane-background-color;
background: $background2;
overflow: hidden;
}
}
@@ -106,6 +106,10 @@
top: 70px;
right: -6px;
width: 24px;
+ .btn-round {
margin-top: 8px;
}
}
}
@@ -123,7 +127,8 @@
> .calculated {
.value {
border-color: $pane-background-color;
border-color: transparent;
background: transparent;
}
.number-box {