1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-22 02:51:28 +00:00
Files
homebrewery/shared/naturalcrit/combat/combat.store.js
Scott Tolksdorf 626cba6062 Newlines
2016-05-28 09:41:05 -04:00

69 lines
1.8 KiB
JavaScript

var flux = require('pico-flux');
var _ = require('lodash');
var defaultMonsterManual = require('naturalcrit/defaultMonsterManual.js');
var GetRandomEncounter = require('naturalcrit/randomEncounter.js');
var Store = {
selectedEncounterIndex : 0,
encounters : JSON.parse(localStorage.getItem('encounters')) || [GetRandomEncounter()],
monsterManual : JSON.parse(localStorage.getItem('monsterManual')) || defaultMonsterManual,
players : localStorage.getItem('players') || 'jasper 13\nzatch 19',
};
module.exports = flux.createStore({
UDPATE_MONSTER_MANUAL : function(json){
Store.monsterManual = json;
return true;
},
ADD_ENCOUNTER : function(){
Store.encounters.push(GetRandomEncounter());
return true;
},
UPDATE_ENCOUNTER : function(index, json){
Store.encounters[index] = json;
return true;
},
REMOVE_ENCOUNTER : function(index){
Store.encounters.splice(index, 1);
return true;
},
UPDATE_PLAYERS : function(text){
Store.players = text;
return true;
},
SELECT_ENCOUNTER : function(index){
Store.selectedEncounterIndex = index;
return true;
},
},{
getMonsterManual : function(){
return Store.monsterManual;
},
getSelectedEncounterIndex : function(){
return Store.selectedEncounterIndex;
},
getSelectedEncounter : function(){
return Store.encounters[Store.selectedEncounterIndex];
},
getEncounter : function(index){
return Store.encounters[index];
},
getEncounters : function(index){
return Store.encounters;
},
getPlayersText : function(){
return Store.players;
},
getPlayers : function(){
return _.reduce(Store.players.split('\n'), function(r, line){
var idx = line.lastIndexOf(' ');
if(idx !== -1){
r[line.substring(0, idx)] = line.substring(idx)*1;
}
return r;
}, {})
},
})