From f968421b5b8e40c09cabd802f24b81f7a3f0d32c Mon Sep 17 00:00:00 2001 From: Scott Tolksdorf Date: Thu, 17 Dec 2015 19:28:22 -0500 Subject: [PATCH] Workign on the homebrew --- ...40s-002's conflicted copy 2015-12-17).json | 91 ++++++++++ .../combatManager/combatManager.jsx | 165 ++++++++++++++++++ .../combatManager/combatManager.less | 8 + .../encounter/encounter.jsx | 21 ++- .../encounter/encounter.less | 0 .../monsterCard/attackSlot/attackSlot.jsx | 0 .../monsterCard/attackSlot/attackSlot.less | 0 .../encounter/monsterCard/monsterCard.jsx | 0 .../encounter/monsterCard/monsterCard.less | 0 .../{ => combatManager}/sidebar/CODE Bold.otf | Bin .../sidebar/CODE Light.otf | Bin .../sidebar/dmDice/dmDice.jsx | 0 .../sidebar/dmDice/dmDice.less | 0 .../sidebar/encounters/encounters.jsx | 37 +++- .../sidebar/encounters/encounters.less | 0 .../{ => combatManager}/sidebar/sidebar.jsx | 92 +++------- .../{ => combatManager}/sidebar/sidebar.less | 0 .../assets/Bookinsanity Bold Italic.otf | Bin 0 -> 34212 bytes .../homebrew/assets/Bookinsanity Bold.otf | Bin 0 -> 33712 bytes .../homebrew/assets/Bookinsanity Italic.otf | Bin 0 -> 34172 bytes .../homebrew/assets/Bookinsanity.otf | Bin 0 -> 33576 bytes .../homebrew/assets/Mr Eaves Small Caps.otf | Bin 0 -> 44952 bytes .../assets/MrsEavesSmallCaps_Regular.ttf | Bin 0 -> 52793 bytes .../homebrew/assets/PHB fonts used.jpg | Bin 0 -> 344945 bytes .../homebrew/assets/PHB-background.png | Bin 0 -> 5704303 bytes .../homebrew/assets/Scaly Sans.otf | Bin 0 -> 34632 bytes .../homebrew/assets/Solbera Imitation.otf | Bin 0 -> 41820 bytes .../assets/frame border corner filled.png | Bin 0 -> 9608 bytes .../homebrew/assets/frame border corner.png | Bin 0 -> 14178 bytes client/naturalCrit/homebrew/homebrew.jsx | 40 +++++ client/naturalCrit/homebrew/homebrew.less | 141 +++++++++++++++ client/naturalCrit/naturalCrit.jsx | 143 ++------------- client/naturalCrit/naturalCrit.less | 12 +- gulpfile.js | 11 +- package.json | 2 + shared/naturalCrit/combat.actions.js | 23 +++ shared/naturalCrit/combat.store.js | 69 ++++++++ .../naturalCrit/{ => styles}/animations.less | 0 shared/naturalCrit/{ => styles}/colors.less | 0 shared/naturalCrit/{ => styles}/elements.less | 0 shared/naturalCrit/{ => styles}/reset.less | 0 41 files changed, 636 insertions(+), 219 deletions(-) create mode 100644 client/naturalCrit/architecture (T440s-002's conflicted copy 2015-12-17).json create mode 100644 client/naturalCrit/combatManager/combatManager.jsx create mode 100644 client/naturalCrit/combatManager/combatManager.less rename client/naturalCrit/{ => combatManager}/encounter/encounter.jsx (95%) rename client/naturalCrit/{ => combatManager}/encounter/encounter.less (100%) rename client/naturalCrit/{ => combatManager}/encounter/monsterCard/attackSlot/attackSlot.jsx (100%) rename client/naturalCrit/{ => combatManager}/encounter/monsterCard/attackSlot/attackSlot.less (100%) rename client/naturalCrit/{ => combatManager}/encounter/monsterCard/monsterCard.jsx (100%) rename client/naturalCrit/{ => combatManager}/encounter/monsterCard/monsterCard.less (100%) rename client/naturalCrit/{ => combatManager}/sidebar/CODE Bold.otf (100%) rename client/naturalCrit/{ => combatManager}/sidebar/CODE Light.otf (100%) rename client/naturalCrit/{ => combatManager}/sidebar/dmDice/dmDice.jsx (100%) rename client/naturalCrit/{ => combatManager}/sidebar/dmDice/dmDice.less (100%) rename client/naturalCrit/{ => combatManager}/sidebar/encounters/encounters.jsx (63%) rename client/naturalCrit/{ => combatManager}/sidebar/encounters/encounters.less (100%) rename client/naturalCrit/{ => combatManager}/sidebar/sidebar.jsx (73%) rename client/naturalCrit/{ => combatManager}/sidebar/sidebar.less (100%) create mode 100644 client/naturalCrit/homebrew/assets/Bookinsanity Bold Italic.otf create mode 100644 client/naturalCrit/homebrew/assets/Bookinsanity Bold.otf create mode 100644 client/naturalCrit/homebrew/assets/Bookinsanity Italic.otf create mode 100644 client/naturalCrit/homebrew/assets/Bookinsanity.otf create mode 100644 client/naturalCrit/homebrew/assets/Mr Eaves Small Caps.otf create mode 100644 client/naturalCrit/homebrew/assets/MrsEavesSmallCaps_Regular.ttf create mode 100644 client/naturalCrit/homebrew/assets/PHB fonts used.jpg create mode 100644 client/naturalCrit/homebrew/assets/PHB-background.png create mode 100644 client/naturalCrit/homebrew/assets/Scaly Sans.otf create mode 100644 client/naturalCrit/homebrew/assets/Solbera Imitation.otf create mode 100644 client/naturalCrit/homebrew/assets/frame border corner filled.png create mode 100644 client/naturalCrit/homebrew/assets/frame border corner.png create mode 100644 client/naturalCrit/homebrew/homebrew.jsx create mode 100644 client/naturalCrit/homebrew/homebrew.less create mode 100644 shared/naturalCrit/combat.actions.js create mode 100644 shared/naturalCrit/combat.store.js rename shared/naturalCrit/{ => styles}/animations.less (100%) rename shared/naturalCrit/{ => styles}/colors.less (100%) rename shared/naturalCrit/{ => styles}/elements.less (100%) rename shared/naturalCrit/{ => styles}/reset.less (100%) diff --git a/client/naturalCrit/architecture (T440s-002's conflicted copy 2015-12-17).json b/client/naturalCrit/architecture (T440s-002's conflicted copy 2015-12-17).json new file mode 100644 index 0000000..324415a --- /dev/null +++ b/client/naturalCrit/architecture (T440s-002's conflicted copy 2015-12-17).json @@ -0,0 +1,91 @@ +{ + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\homebrew\\homebrew.jsx": [ + "react", + "lodash", + "classnames", + "marked" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\shared\\naturalCrit\\defaultMonsterManual.js": [], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\shared\\naturalCrit\\combat.actions.js": [ + "pico-flux" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\shared\\naturalCrit\\rollDice.js": [ + "lodash" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\combatManager\\sidebar\\dmDice\\dmDice.jsx": [ + "react", + "lodash", + "classnames", + "naturalCrit/rollDice" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\shared\\naturalCrit\\jsonFileEditor\\jsonFileEditor.jsx": [ + "react", + "lodash", + "classnames", + "jsoneditor" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\combatManager\\encounter\\monsterCard\\attackSlot\\attackSlot.jsx": [ + "react", + "lodash", + "classnames", + "naturalCrit/rollDice" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\combatManager\\encounter\\monsterCard\\monsterCard.jsx": [ + "react", + "lodash", + "classnames", + "./attackSlot/attackSlot.jsx" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\combatManager\\encounter\\encounter.jsx": [ + "react", + "lodash", + "classnames", + "naturalCrit/combat.store.js", + "./monsterCard/monsterCard.jsx" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\combatManager\\sidebar\\encounters\\encounters.jsx": [ + "react", + "lodash", + "classnames", + "naturalCrit/combat.store.js", + "naturalCrit/combat.actions.js", + "naturalCrit/jsonFileEditor/jsonFileEditor.jsx" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\combatManager\\sidebar\\sidebar.jsx": [ + "react", + "lodash", + "classnames", + "naturalCrit/combat.store.js", + "naturalCrit/combat.actions.js", + "./dmDice/dmDice.jsx", + "naturalCrit/jsonFileEditor/jsonFileEditor.jsx", + "./encounters/encounters.jsx" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\shared\\naturalCrit\\randomEncounter.js": [ + "lodash" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\shared\\naturalCrit\\combat.store.js": [ + "pico-flux", + "lodash", + "naturalCrit/defaultMonsterManual.js", + "naturalCrit/randomEncounter.js" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\combatManager\\combatManager.jsx": [ + "react", + "lodash", + "classnames", + "naturalCrit/defaultMonsterManual.js", + "naturalCrit/combat.actions", + "./encounter/encounter.jsx", + "./sidebar/sidebar.jsx", + "naturalCrit/combat.store" + ], + "C:\\Dropbox\\root\\Programming\\Javascript\\NaturalCrit\\client\\naturalCrit\\naturalCrit.jsx": [ + "react", + "lodash", + "classnames", + "pico-router", + "./homebrew/homebrew.jsx", + "./combatManager/combatManager.jsx" + ] +} \ No newline at end of file diff --git a/client/naturalCrit/combatManager/combatManager.jsx b/client/naturalCrit/combatManager/combatManager.jsx new file mode 100644 index 0000000..1487a39 --- /dev/null +++ b/client/naturalCrit/combatManager/combatManager.jsx @@ -0,0 +1,165 @@ +var React = require('react'); +var _ = require('lodash'); +var cx = require('classnames'); + +var Sidebar = require('./sidebar/sidebar.jsx'); +var Encounter = require('./encounter/encounter.jsx'); + +var encounters = [ + { + name : 'The Big Bad', + desc : 'The big fight!', + reward : 'gems', + enemies : ['goblin', 'goblin'], + reserve : ['goblin'], + }, + { + name : 'Demon Goats', + desc : 'Gross fight', + reward : 'curved horn, goat sac', + enemies : ['demon_goat', 'demon_goat', 'demon_goat'], + unique : { + demon_goat : { + "hp" : 140, + "ac" : 16, + "attr" : { + "str" : 8, + "con" : 8, + "dex" : 8, + "int" : 8, + "wis" : 8, + "cha" : 8 + }, + "attacks" : { + "charge" : { + "atk" : "1d20+5", + "dmg" : "1d8+5", + "type" : "bludge" + } + }, + "abilities" : ["charge"], + } + } + }, + +]; + +var defaultMonsterManual = require('naturalCrit/defaultMonsterManual.js'); + +var attrMod = function(attr){ + return Math.floor(attr/2) - 5; +} + + +var Store = require('naturalCrit/combat.store'); +var Actions = require('naturalCrit/combat.actions'); + + + +var CombatManager = React.createClass({ + mixins : [Store.mixin()], + + + getInitialState: function() { + var self = this; + return { + selectedEncounterIndex : 0, + encounters : JSON.parse(localStorage.getItem('encounters')) || encounters, + monsterManual : JSON.parse(localStorage.getItem('monsterManual')) || defaultMonsterManual, + + players : localStorage.getItem('players') || 'jasper 13\nzatch 19', + + + }; + }, + + onStoreChange : function(){ + console.log('STORE CAHNGE', Store.getInc()); + this.setState({ + inc : Store.getInc() + }) + }, + + + handleEncounterJSONChange : function(encounterIndex, json){ + this.state.encounters[encounterIndex] = json; + this.setState({ + encounters : this.state.encounters + }) + localStorage.setItem("encounters", JSON.stringify(this.state.encounters)); + }, + handleMonsterManualJSONChange : function(json){ + this.setState({ + monsterManual : json + }); + localStorage.setItem("monsterManual", JSON.stringify(this.state.monsterManual)); + }, + handlePlayerChange : function(e){ + this.setState({ + players : e.target.value + }); + localStorage.setItem("players", e.target.value); + }, + handleSelectedEncounterChange : function(encounterIndex){ + console.log(encounterIndex); + this.setState({ + selectedEncounterIndex : encounterIndex + }); + }, + handleRemoveEncounter : function(encounterIndex){ + this.state.encounters.splice(encounterIndex, 1); + this.setState({ + encounters : this.state.encounters + }); + localStorage.setItem("encounters", JSON.stringify(this.state.encounters)); + }, + + renderSelectedEncounter : function(){ + var self = this; + + if(this.state.selectedEncounterIndex != null && this.state.encounters[this.state.selectedEncounterIndex]){ + var selectedEncounter = this.state.encounters[this.state.selectedEncounterIndex] + return + } + + return null; + }, + + temp : function(){ + Actions.setInc(++this.state.inc); + }, + + + render : function(){ + var self = this; + return( +
+ + + + {this.renderSelectedEncounter()} + + + +
+ ); + } +}); + +module.exports = CombatManager; diff --git a/client/naturalCrit/combatManager/combatManager.less b/client/naturalCrit/combatManager/combatManager.less new file mode 100644 index 0000000..63bb121 --- /dev/null +++ b/client/naturalCrit/combatManager/combatManager.less @@ -0,0 +1,8 @@ +.combatManager{ + + .encounterContainer{ + display: inline-block; + vertical-align: top; + } + +} \ No newline at end of file diff --git a/client/naturalCrit/encounter/encounter.jsx b/client/naturalCrit/combatManager/encounter/encounter.jsx similarity index 95% rename from client/naturalCrit/encounter/encounter.jsx rename to client/naturalCrit/combatManager/encounter/encounter.jsx index 2fe57ae..b0f8ea3 100644 --- a/client/naturalCrit/encounter/encounter.jsx +++ b/client/naturalCrit/combatManager/encounter/encounter.jsx @@ -2,13 +2,28 @@ var React = require('react'); var _ = require('lodash'); var cx = require('classnames'); +var Store = require('naturalCrit/combat.store.js'); + var MonsterCard = require('./monsterCard/monsterCard.jsx'); + + var attrMod = function(attr){ return Math.floor(attr/2) - 5; } var Encounter = React.createClass({ + mixins : [Store.mixin()], + getInitialState: function() { + return { + enemies: this.createEnemies(this.props) + }; + }, + + onStoreChange : function(){ + var players = Store.getplayersText(); + + }, getDefaultProps: function() { return { @@ -23,11 +38,7 @@ var Encounter = React.createClass({ }; }, - getInitialState: function() { - return { - enemies: this.createEnemies(this.props) - }; - }, + componentWillReceiveProps: function(nextProps) { this.setState({ diff --git a/client/naturalCrit/encounter/encounter.less b/client/naturalCrit/combatManager/encounter/encounter.less similarity index 100% rename from client/naturalCrit/encounter/encounter.less rename to client/naturalCrit/combatManager/encounter/encounter.less diff --git a/client/naturalCrit/encounter/monsterCard/attackSlot/attackSlot.jsx b/client/naturalCrit/combatManager/encounter/monsterCard/attackSlot/attackSlot.jsx similarity index 100% rename from client/naturalCrit/encounter/monsterCard/attackSlot/attackSlot.jsx rename to client/naturalCrit/combatManager/encounter/monsterCard/attackSlot/attackSlot.jsx diff --git a/client/naturalCrit/encounter/monsterCard/attackSlot/attackSlot.less b/client/naturalCrit/combatManager/encounter/monsterCard/attackSlot/attackSlot.less similarity index 100% rename from client/naturalCrit/encounter/monsterCard/attackSlot/attackSlot.less rename to client/naturalCrit/combatManager/encounter/monsterCard/attackSlot/attackSlot.less diff --git a/client/naturalCrit/encounter/monsterCard/monsterCard.jsx b/client/naturalCrit/combatManager/encounter/monsterCard/monsterCard.jsx similarity index 100% rename from client/naturalCrit/encounter/monsterCard/monsterCard.jsx rename to client/naturalCrit/combatManager/encounter/monsterCard/monsterCard.jsx diff --git a/client/naturalCrit/encounter/monsterCard/monsterCard.less b/client/naturalCrit/combatManager/encounter/monsterCard/monsterCard.less similarity index 100% rename from client/naturalCrit/encounter/monsterCard/monsterCard.less rename to client/naturalCrit/combatManager/encounter/monsterCard/monsterCard.less diff --git a/client/naturalCrit/sidebar/CODE Bold.otf b/client/naturalCrit/combatManager/sidebar/CODE Bold.otf similarity index 100% rename from client/naturalCrit/sidebar/CODE Bold.otf rename to client/naturalCrit/combatManager/sidebar/CODE Bold.otf diff --git a/client/naturalCrit/sidebar/CODE Light.otf b/client/naturalCrit/combatManager/sidebar/CODE Light.otf similarity index 100% rename from client/naturalCrit/sidebar/CODE Light.otf rename to client/naturalCrit/combatManager/sidebar/CODE Light.otf diff --git a/client/naturalCrit/sidebar/dmDice/dmDice.jsx b/client/naturalCrit/combatManager/sidebar/dmDice/dmDice.jsx similarity index 100% rename from client/naturalCrit/sidebar/dmDice/dmDice.jsx rename to client/naturalCrit/combatManager/sidebar/dmDice/dmDice.jsx diff --git a/client/naturalCrit/sidebar/dmDice/dmDice.less b/client/naturalCrit/combatManager/sidebar/dmDice/dmDice.less similarity index 100% rename from client/naturalCrit/sidebar/dmDice/dmDice.less rename to client/naturalCrit/combatManager/sidebar/dmDice/dmDice.less diff --git a/client/naturalCrit/sidebar/encounters/encounters.jsx b/client/naturalCrit/combatManager/sidebar/encounters/encounters.jsx similarity index 63% rename from client/naturalCrit/sidebar/encounters/encounters.jsx rename to client/naturalCrit/combatManager/sidebar/encounters/encounters.jsx index 552d1ec..632f230 100644 --- a/client/naturalCrit/sidebar/encounters/encounters.jsx +++ b/client/naturalCrit/combatManager/sidebar/encounters/encounters.jsx @@ -4,10 +4,27 @@ var cx = require('classnames'); var JSONFileEditor = require('naturalCrit/jsonFileEditor/jsonFileEditor.jsx'); -var GetRandomEncounter = require('naturalCrit/randomEncounter.js'); +//var GetRandomEncounter = require('naturalCrit/randomEncounter.js'); + +var Store = require('naturalCrit/combat.store.js'); +var Actions = require('naturalCrit/combat.actions.js'); var Encounters = React.createClass({ + mixins : [Store.mixin()], + onStoreChange : function(){ + this.setState({ + encounters : Store.getEncounters(), + selectedEncounter : Store.getSelectedEncounterIndex() + }); + }, + getInitialState: function() { + return { + encounters : Store.getEncounters(), + selectedEncounter : Store.getSelectedEncounterIndex() + }; + }, + /* getDefaultProps: function() { return { encounters : [], @@ -18,27 +35,29 @@ var Encounters = React.createClass({ onRemoveEncounter : function(encounterIndex){} }; }, - + */ handleJSONChange : function(encounterIndex, json){ - this.props.onJSONChange(encounterIndex, json); + //this.props.onJSONChange(encounterIndex, json); + Actions.updateEncounter(encounterIndex, json); }, handleSelectEncounter : function(encounterIndex){ - this.props.onSelectEncounter(encounterIndex); + //this.props.onSelectEncounter(encounterIndex); + Actions.selectEncounter(encounterIndex); }, handleRemoveEncounter : function(encounterIndex){ - this.props.onRemoveEncounter(encounterIndex); + //this.props.onRemoveEncounter(encounterIndex); + Actions.removeEncounter(encounterIndex); }, - addRandomEncounter : function(){ - this.props.onJSONChange(this.props.encounters.length, GetRandomEncounter()); + Actions.addEncounter(); }, renderEncounters : function(){ var self = this; - return _.map(this.props.encounters, function(encounter, index){ + return _.map(this.state.encounters, function(encounter, index){ - var isSelected = self.props.selectedEncounter == index; + var isSelected = self.state.selectedEncounter == index; return
- - - - - - - -
- }) + handleMonsterManualChange : function(json){ + Actions.updateMonsterManual(json); }, -*/ + handlePlayerChange : function(e){ + Actions.updatePlayers(e.target.value); + }, + render : function(){ var self = this; return( @@ -79,39 +54,20 @@ var Sidebar = React.createClass({
-
- - - - +

Players

-