From 81f25a3f380affc68d0fa393a0e0b43745aeee66 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 27 Mar 2019 13:34:43 +1100 Subject: [PATCH 1/3] molecules --- client/.gitignore | 1 + ops/.gitignore | 3 ++- ops/fetch.molecules.js | 45 ++++++++++++++++++++++++++++++++++++++++++ ops/molecules.js | 18 +++++++++++++++++ ops/package.json | 5 ++++- 5 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 ops/fetch.molecules.js create mode 100644 ops/molecules.js diff --git a/client/.gitignore b/client/.gitignore index b06e564c..2106e507 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -2,3 +2,4 @@ package-lock.json node_modules/ dist/ .cache/ +assets/molecules diff --git a/ops/.gitignore b/ops/.gitignore index 3ea1bb5c..ee38e5d5 100755 --- a/ops/.gitignore +++ b/ops/.gitignore @@ -1,2 +1,3 @@ node_modules/ -package-lock.json \ No newline at end of file +package-lock.json +molecules/ diff --git a/ops/fetch.molecules.js b/ops/fetch.molecules.js new file mode 100644 index 00000000..bb0f7bed --- /dev/null +++ b/ops/fetch.molecules.js @@ -0,0 +1,45 @@ +const request = require('request'); +const fs = require('fs'); +const renderer = require('sdftosvg'); + +const SVG_OPTS = { + backgroundColor: 'none', +} + +function fetch(i) { + return new Promise((resolve, reject) => { + const url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/CID/${i}/record/SDF/?record_type=2d&response_type=save&response_basename=Structure2D_CID_2519`; + const output = `./../client/assets/molecules/${i}.svg`; + + request(url, function cb(err, res, body) { + if (err) reject(err); + + // write file + fs.writeFile(`./molecules/Structure2D_CID_${i}.sdf`, body, function written(err) { + if (err) reject(err); + }); + + // write svg + renderer.renderSdfToSvg(body, SVG_OPTS, function(err, svg) { + if (err) reject(err); + fs.writeFile(output, svg, function written(err) { + if (err) reject(err); + resolve(); + }); + }); + }); + }); +} + +async function loop() { + for (var i = 10000; i >= 0; i--) { + try { + await fetch(i); + console.log('finished record', i); + } catch (e) { + console.error(e); + } + } +} + +loop(); diff --git a/ops/molecules.js b/ops/molecules.js new file mode 100644 index 00000000..39c7d1b5 --- /dev/null +++ b/ops/molecules.js @@ -0,0 +1,18 @@ +const renderer = require('sdftosvg'); +const uuidv4 = require('uuid/v4'); +const fs = require('fs'); + +function convert(f) { + const uuid = uuidv4(); + const input = `./molecules/${f}`; + const output = `./../client/assets/molecules/${uuid}.svg`; + fs.readFile(input, 'utf8', (err, sdf) => { + renderer.renderSdfToSvg(sdf, {}, function(err, svg) { + if (err) console.error(input, err); + fs.writeFile(output, svg, 'utf8', err => { + if (err) console.error(err); + }); + }); + }); +} + diff --git a/ops/package.json b/ops/package.json index 3ee5cdf7..9ab56e0a 100755 --- a/ops/package.json +++ b/ops/package.json @@ -12,6 +12,9 @@ "license": "UNLICENSED", "dependencies": { "knex": "^0.15.2", - "pg": "^7.4.3" + "pg": "^7.4.3", + "request": "^2.88.0", + "sdftosvg": "0.0.4", + "uuid": "^3.3.2" } } From a6926e9c7a48c01447cb9220719e99e8d14c4314 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 27 Mar 2019 14:28:23 +1100 Subject: [PATCH 2/3] just convert from bulk file (ask me for it) --- ops/.gitignore | 1 + ops/fetch.molecules.js | 73 +++++++++++++++++++++++++++++++----------- ops/package.json | 1 + server/WORKLOG.md | 5 --- 4 files changed, 57 insertions(+), 23 deletions(-) diff --git a/ops/.gitignore b/ops/.gitignore index ee38e5d5..2a51843a 100755 --- a/ops/.gitignore +++ b/ops/.gitignore @@ -1,3 +1,4 @@ node_modules/ package-lock.json molecules/ +bulk.sdf diff --git a/ops/fetch.molecules.js b/ops/fetch.molecules.js index bb0f7bed..5b9b7ba2 100644 --- a/ops/fetch.molecules.js +++ b/ops/fetch.molecules.js @@ -1,4 +1,3 @@ -const request = require('request'); const fs = require('fs'); const renderer = require('sdftosvg'); @@ -6,40 +5,78 @@ const SVG_OPTS = { backgroundColor: 'none', } -function fetch(i) { +function convert(i) { + const output = `./../client/assets/molecules/${i}.svg`; + return new Promise((resolve, reject) => { - const url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/CID/${i}/record/SDF/?record_type=2d&response_type=save&response_basename=Structure2D_CID_2519`; - const output = `./../client/assets/molecules/${i}.svg`; - - request(url, function cb(err, res, body) { - if (err) reject(err); - - // write file - fs.writeFile(`./molecules/Structure2D_CID_${i}.sdf`, body, function written(err) { - if (err) reject(err); - }); - + fs.readFile(`./molecules/mol${i}`, 'utf8', function rfCb(err, sdf) { + if (err) return reject(err); // write svg - renderer.renderSdfToSvg(body, SVG_OPTS, function(err, svg) { - if (err) reject(err); + renderer.renderSdfToSvg(sdf, SVG_OPTS, function(err, svg) { + if (err) return reject(err); fs.writeFile(output, svg, function written(err) { if (err) reject(err); resolve(); }); }); - }); + }) }); } async function loop() { for (var i = 10000; i >= 0; i--) { try { - await fetch(i); + await convert(i); console.log('finished record', i); } catch (e) { - console.error(e); + console.error('record error', i, e); } } } loop(); + +// const request = require('request'); +// const fs = require('fs'); +// const renderer = require('sdftosvg'); + +// const SVG_OPTS = { +// backgroundColor: 'none', +// } + +// function fetch(i) { +// return new Promise((resolve, reject) => { +// const url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/CID/${i}/record/SDF/?record_type=2d&response_type=save&response_basename=Structure2D_CID_2519`; +// const output = `./../client/assets/molecules/${i}.svg`; + +// request(url, function cb(err, res, body) { +// if (err) reject(err); + +// // write file +// fs.writeFile(`./molecules/Structure2D_CID_${i}.sdf`, body, function written(err) { +// if (err) reject(err); +// }); + +// // write svg +// renderer.renderSdfToSvg(body, SVG_OPTS, function(err, svg) { +// if (err) reject(err); +// fs.writeFile(output, svg, function written(err) { +// if (err) reject(err); +// resolve(); +// }); +// }); +// }); +// }); +// } + +// async function loop() { +// for (var i = 10000; i >= 0; i--) { +// try { +// await fetch(i); +// console.log('finished record', i); +// } catch (e) { +// console.error(e); +// } +// } +// } + diff --git a/ops/package.json b/ops/package.json index 9ab56e0a..c0955c0a 100755 --- a/ops/package.json +++ b/ops/package.json @@ -4,6 +4,7 @@ "description": "", "main": "index.js", "scripts": { + "split:molecules": "cd molecules; csplit -f mol bulk.sdf /\$\$\$\$/ {*} --suppress-matched -z", "migrate": "knex migrate:latest", "migrate:make": "knex migrate:make --", "test": "echo \"Error: no test specified\" && exit 1" diff --git a/server/WORKLOG.md b/server/WORKLOG.md index c533abaa..d0b44c22 100644 --- a/server/WORKLOG.md +++ b/server/WORKLOG.md @@ -38,11 +38,6 @@ make strike *really* hit first / resolve at same time? * vbox drops chances * 50% spec, 25% colour etc -* rework damage and resolutions - deal_damage(colour) - resolutions.push(skill()).flatten() - overkill in logs - * confirm cryp without skill ready * iconography * aoe skills From dc812989923de4b891b18fdda535abd0f8ea75c6 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 27 Mar 2019 14:32:42 +1100 Subject: [PATCH 3/3] fix corruption tick speed --- server/src/skill.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/skill.rs b/server/src/skill.rs index b8f21ec4..175565f4 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -738,6 +738,7 @@ impl Skill { Skill::DecayTick => Var::from(Skill::Decay).speed(), Skill::TriageTick => Var::from(Skill::Triage).speed(), Skill::StrangleTick => Var::from(Skill::Strangle).speed(), + Skill::CorruptionTick => Var::from(Skill::Corrupt).speed(), _ => Var::from(*self).speed(), }