Failed to commit these

This commit is contained in:
2019-06-01 16:48:08 +10:00
parent f7698887b7
commit bdba64aed3
7 changed files with 65 additions and 54 deletions
+13 -2
View File
@@ -64,6 +64,17 @@ a {
text-align: right; text-align: right;
} }
.truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.badwrap {
overflow: wrap;
overflow-wrap: break-word;
}
/* footer */ /* footer */
footer { footer {
flex: 0 1 auto; flex: 0 1 auto;
@@ -249,8 +260,8 @@ footer {
} }
.col { .col {
flex: 1; flex: 1 1 1%;
min-width: 80px; min-width: 0;
} }
.table.noCollapse .row { .table.noCollapse .row {
+4 -4
View File
@@ -147,16 +147,16 @@ const runCombatTick = (connection) => {
//determine the spoils and casualties //determine the spoils and casualties
let spoilsGold = Math.floor(results[0].gold * (victor === 'attacker' ? 0.1 : 0.02)); let spoilsGold = Math.floor(results[0].gold * (victor === 'attacker' ? 0.1 : 0.02));
let casualtiesVictor = Math.floor((pendingCombat.attackingUnits >= 10 ? pendingCombat.attackingUnits - 10 : 0) * (victor === 'attacker' ? 0.05 : 0.1)); let attackerCasualties = Math.floor((pendingCombat.attackingUnits >= 10 ? pendingCombat.attackingUnits - 10 : 0) * (victor === 'attacker' ? 0.05 : 0.1));
//save the combat //save the combat
let query = 'INSERT INTO pastCombat (eventTime, attackerId, defenderId, attackingUnits, defendingUnits, undefended, victor, spoilsGold, casualtiesVictor) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);'; let query = 'INSERT INTO pastCombat (eventTime, attackerId, defenderId, attackingUnits, defendingUnits, undefended, victor, spoilsGold, attackerCasualties) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);';
connection.query(query, [pendingCombat.eventTime, pendingCombat.attackerId, pendingCombat.defenderId, pendingCombat.attackingUnits, defendingUnits, undefended, victor, spoilsGold, casualtiesVictor], (err) => { connection.query(query, [pendingCombat.eventTime, pendingCombat.attackerId, pendingCombat.defenderId, pendingCombat.attackingUnits, defendingUnits, undefended, victor, spoilsGold, attackerCasualties], (err) => {
if (err) throw err; if (err) throw err;
//update the attacker profile //update the attacker profile
let query = 'UPDATE profiles SET gold = gold + ?, soldiers = soldiers - ? WHERE accountId = ?;'; let query = 'UPDATE profiles SET gold = gold + ?, soldiers = soldiers - ? WHERE accountId = ?;';
connection.query(query, [spoilsGold, casualtiesVictor, pendingCombat.attackerId], (err) => { connection.query(query, [spoilsGold, attackerCasualties, pendingCombat.attackerId], (err) => {
if (err) throw err; if (err) throw err;
//update the defender profile //update the defender profile
+10 -10
View File
@@ -1,18 +1,18 @@
{ {
"Weapons": { "Weapons": {
"Stick": { "cost": 50, "combatBoost": 0.02, "scientistsRequired": 1, "purchasable": true }, "Stick": { "cost": 50, "purchasable": true, "saleable": true, "scientistsRequired": 1, "combatBoost": 0.02 },
"Dagger": { "cost": 75, "combatBoost": 0.03, "scientistsRequired": 2, "purchasable": true }, "Dagger": { "cost": 75, "purchasable": true, "saleable": true, "scientistsRequired": 2, "combatBoost": 0.03 },
"Sword": { "cost": 100, "combatBoost": 0.04, "scientistsRequired": 3, "purchasable": true }, "Sword": { "cost": 100, "purchasable": true, "saleable": true, "scientistsRequired": 3, "combatBoost": 0.04 },
"Longsword": { "cost": 150, "combatBoost": 0.05, "scientistsRequired": 4, "purchasable": true }, "Longsword": { "cost": 150, "purchasable": true, "saleable": true, "scientistsRequired": 4, "combatBoost": 0.05 },
"Frying Pan": { "cost": 200, "combatBoost": 0.06, "scientistsRequired": 5, "purchasable": true } "Frying Pan": { "cost": 200, "purchasable": true, "saleable": true, "scientistsRequired": 5, "combatBoost": 0.06 }
}, },
"Armour": { "Armour": {
"Leather": { "cost": 75, "combatBoost": 0.02, "scientistsRequired": 2, "purchasable": true }, "Leather": { "cost": 75, "purchasable": false, "saleable": true, "scientistsRequired": 2, "combatBoost": 0.02 },
"Gambeson": { "cost": 100, "combatBoost": 0.03, "scientistsRequired": 3, "purchasable": true }, "Gambeson": { "cost": 100, "purchasable": false, "saleable": true, "scientistsRequired": 3, "combatBoost": 0.03 },
"Chainmail": { "cost": 150, "combatBoost": 0.04, "scientistsRequired": 4, "purchasable": true }, "Chainmail": { "cost": 150, "purchasable": false, "saleable": true, "scientistsRequired": 4, "combatBoost": 0.04 },
"Platemail": { "cost": 200, "combatBoost": 0.05, "scientistsRequired": 5, "purchasable": true } "Platemail": { "cost": 200, "purchasable": false, "saleable": true, "scientistsRequired": 5, "combatBoost": 0.05 }
}, },
"Consumables": { "Consumables": {
"Potion": { "cost": 100, "combatBoost": 0.04, "scientistsRequired": 1, "purchasable": true } "Potion": { "cost": 100, "purchasable": true, "saleable": true, "scientistsRequired": 1, "combatBoost": 0.04 }
} }
} }
+3 -3
View File
@@ -145,14 +145,14 @@ class Profile extends React.Component {
<p className='col'>Gold:</p> <p className='col'>Gold:</p>
<p className='col'>{this.props.profile.gold}</p> <p className='col'>{this.props.profile.gold}</p>
<p className='col' style={{flex: '2 1 1%'}}>(+1 gold for each recruit every half hour)</p> <p className='col truncate' style={{flex: '2 1 2%'}}>(+1 gold for each recruit every half hour)</p>
</div> </div>
<div className='row'> <div className='row'>
<p className='col'>Recruits:</p> <p className='col'>Recruits:</p>
<p className='col'>{this.props.profile.recruits}</p> <p className='col'>{this.props.profile.recruits}</p>
<button className='col' style={{flex: '2 1 1%'}} onClick={ () => this.sendRequest('/recruitrequest') }>Recruit More Units</button> <button className='col' style={{flex: '2 1 2%'}} onClick={ () => this.sendRequest('/recruitrequest') }>Recruit More Units</button>
</div> </div>
<div className='row'> <div className='row'>
@@ -224,7 +224,7 @@ class Profile extends React.Component {
<AttackButton <AttackButton
className='col' className='col'
style={{flex: '2 1 1%'}} style={{flex: '2 1 2%'}}
setWarning={this.setWarning.bind(this)} setWarning={this.setWarning.bind(this)}
attacker={this.props.account.username} attacker={this.props.account.username}
defender={this.props.profile.username} defender={this.props.profile.username}
+13 -13
View File
@@ -33,21 +33,21 @@ class Equipment extends React.Component {
<div className='panel'> <div className='panel'>
<div className='table'> <div className='table'>
<div className='row'> <div className='row'>
<p className='col centered'>Name</p> <p className='col centered truncate'>Name</p>
<p className='col centered'>Type</p> <p className='col centered truncate'>Type</p>
<p className='col centered'>Owned</p> <p className='col centered truncate'>Owned</p>
<p className='col centered'>Cost</p> <p className='col centered truncate'>Cost</p>
<p className='col centered'>Buy</p> <p className='col centered truncate'>Buy</p>
<p className='col centered'>Sell</p> <p className='col centered truncate'>Sell</p>
</div> </div>
{Object.keys(display).map((key) => <div className='row' key={key}> {Object.keys(display).map((key) => <div className='row' key={key}>
<p className='col centered'>{display[key].name}</p> <p className='col centered truncate'>{display[key].name}</p>
<p className='col centered'>{display[key].type}</p> <p className='col centered truncate'>{display[key].type}</p>
<p className='col centered'>{display[key].owned}</p> <p className='col centered truncate'>{display[key].owned}</p>
<p className='col centered'>{display[key].cost}</p> <p className='col centered truncate'>{display[key].cost}</p>
<button className='col centered' disabled={true || display[key].cost > this.props.gold}>+ Buy +</button> {display[key].purchasable ? <button className='col centered truncate' disabled={true || display[key].cost > this.props.gold}>+ Buy +</button> : <div className='col centered truncate' />}
<button className='col centered' disabled={true || display[key].owned === 0}>- Sell -</button> {display[key].saleable ? <button className='col centered truncate' disabled={true || display[key].owned === 0}>- Sell -</button> : <div className='col centered truncate' />}
</div>)} </div>)}
</div> </div>
</div> </div>
@@ -106,7 +106,7 @@ class Equipment extends React.Component {
name: name, name: name,
type: type, type: type,
owned: (structure.owned && structure.owned[name]) || 0, owned: (structure.owned && structure.owned[name]) || 0,
cost: structure.statistics[type][name].cost ...structure.statistics[type][name]
}); });
}); });
}); });
+18 -18
View File
@@ -29,27 +29,27 @@ class PagedCombatLog extends React.Component {
return ( return (
<div className='table'> <div className='table'>
<div className='row'> <div className='row'>
<p className='col centered'>When</p> <p className='col centered badwrap'>When</p>
<p className='col centered'>Attacker</p> <p className='col centered badwrap'>Attacker</p>
<p className='col centered'>Defender</p> <p className='col centered badwrap'>Defender</p>
<p className='col centered'>Attacking Force</p> <p className='col centered badwrap'>Attacking Force</p>
<p className='col centered'>Defending Force</p> <p className='col centered badwrap'>Defending Force</p>
<p className='col centered'>Undefended?</p> <p className='col centered badwrap'>Undefended?</p>
<p className='col centered'>Victor</p> <p className='col centered badwrap'>Victor</p>
<p className='col centered'>Gold Transferred</p> <p className='col centered badwrap'>Gold Stolen</p>
<p className='col centered'>Victor Casualties</p> <p className='col centered badwrap'>Attacker Deaths</p>
</div> </div>
{Object.keys(this.state).map((key) => <div key={key} className={'row'}> {Object.keys(this.state).map((key) => <div key={key} className={'row'}>
<p className='col centered'>{ this.parseDate(this.state[key].eventTime) }</p> <p className='col centered truncate'>{ this.parseDate(this.state[key].eventTime) }</p>
<PrettyName className='col centered' name={this.state[key].attacker} /> <PrettyName className='col centered truncate' name={this.state[key].attacker} />
<PrettyName className='col centered' name={this.state[key].defender} /> <PrettyName className='col centered truncate' name={this.state[key].defender} />
<p className='col centered'>{this.state[key].attackingUnits}</p> <p className='col centered truncate'>{this.state[key].attackingUnits}</p>
<p className='col centered'>{this.state[key].defendingUnits}</p> <p className='col centered truncate'>{this.state[key].defendingUnits}</p>
<p className='col centered'>{this.state[key].undefended ? 'yes' : 'no'}</p> <p className='col centered truncate'>{this.state[key].undefended ? 'yes' : 'no'}</p>
<p className='col centered'>{this.state[key].victor}</p> <p className='col centered truncate'>{this.state[key].victor}</p>
<p className='col centered'>{this.state[key].spoilsGold}</p> <p className='col centered truncate'>{this.state[key].spoilsGold}</p>
<p className='col centered'>{this.state[key].casualtiesVictor}</p> <p className='col centered truncate'>{this.state[key].attackerCasualties}</p>
</div>)} </div>)}
</div> </div>
); );
+4 -4
View File
@@ -24,10 +24,10 @@ class PagedLadder extends React.Component {
<p className='col centered'>Gold</p> <p className='col centered'>Gold</p>
</div> </div>
{Object.keys(this.state).map((key) => <div key={key} className={'row'}> {Object.keys(this.state).map((key) => <div key={key} className={'row'}>
<p className={'col centered'}><Link to={`/profile?username=${this.state[key].username}`}>{this.state[key].username}</Link></p> <p className={'col centered truncate'}><Link to={`/profile?username=${this.state[key].username}`}>{this.state[key].username}</Link></p>
<p className={'col centered'}>{this.state[key].soldiers}</p> <p className={'col centered truncate'}>{this.state[key].soldiers}</p>
<p className={'col centered'}>{this.state[key].recruits}</p> <p className={'col centered truncate'}>{this.state[key].recruits}</p>
<p className={'col centered'}>{this.state[key].gold}</p> <p className={'col centered truncate'}>{this.state[key].gold}</p>
</div> )} </div> )}
</div> </div>
); );