0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-17 03:42:43 +00:00

Nearly done, jsut need to clean up the json file and add local storage support

This commit is contained in:
Scott Tolksdorf
2015-11-16 00:52:29 -05:00
parent 3627ee3b49
commit e6e87457da
11 changed files with 214 additions and 44 deletions

View File

@@ -16,9 +16,9 @@ var Encounter = React.createClass({
desc : '',
reward : '',
enemies : [],
players : '',
index : {},
monsterManual : {}
};
},
@@ -67,34 +67,60 @@ var Encounter = React.createClass({
},
getPlayerObjects : function(){
return _.map(this.props.players.split('\n'), function(line){
var parts = line.split(' ');
if(parts.length != 2) return null;
return {
name : parts[0],
initiative : parts[1] * 1,
isPC : true
}
})
},
renderEnemies : function(){
var self = this;
var sortedEnemies = _.sortBy(this.state.enemies, function(e){
return -e.initiative;
var sortedEnemies = _.sortBy(_.union(_.values(this.state.enemies), this.getPlayerObjects()), function(e){
if(e.initiative) return -e.initiative;
return 0;
});
return _.map(sortedEnemies, function(enemy){
if(enemy.isPC){
return <PlayerCard {...enemy} key={enemy.name} />
}
return <MonsterCard
{...enemy}
key={enemy.id}
updateHP={self.updateHP.bind(self, enemy.id)}
remove={self.removeEnemy.bind(self, enemy.id)} />
remove={self.removeEnemy.bind(self, enemy.id)}
/>
})
},
render : function(){
var self = this;
var reward;
if(this.props.reward){
reward = <div className='reward'>
<i className='fa fa-trophy' />
{this.props.reward}
</div>
}
return(
<div className='encounter'>
<div className='mainEncounter'>
<div className='info'>
{this.props.name}
<h1>{this.props.name}</h1>
<p>{this.props.desc}</p>
{reward}
</div>
<div className='cardContainer'>
{this.renderEnemies()}
</div>
@@ -104,3 +130,21 @@ var Encounter = React.createClass({
});
module.exports = Encounter;
var PlayerCard = React.createClass({
getDefaultProps: function() {
return {
name : '',
initiative : 0
};
},
render : function(){
return <div className='playerCard'>
<span className='name'>{_.startCase(this.props.name)}</span>
<span className='initiative'><i className='fa fa-hourglass-2'/>{this.props.initiative}</span>
</div>
},
})