This repository was archived by the owner on Dec 25, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathencode.js
67 lines (54 loc) · 1.37 KB
/
encode.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var _ = require("lodash");
var argv = require('optimist').argv;
var fs = require("fs");
var util = require('./util');
function rate(card) {
if(card.description.length === 0) {
return 0;
}
return card.rarity + (card.race ? 3 : 0) + (card.description.length > 20 ? 3 : 0);
}
function rateCards(set) {
_.each(set, (card) => {
set.interest = rate(card);
});
}
function encodeCard(card) {
var str = "";
// Reformatting the data
// General becomes its own card type
if(util.generalIds.indexOf(card.id) !== -1) {
card.type = 'General';
}
// Give Neutral faction a better number
if(card.factionId === 100) {
card.factionId = 0;
}
//name|faction|type|rarity|race|cost|atk|hp|descr
_.each(util.fields, prop => {
str += card[prop] + "|";
});
return str;
};
(function go() {
var infile = argv._[0];
var shuffle = argv.shuffle;
var copies = argv.copies || 1;
var outfile = argv._[1] || infile + '_encoded' + (copies > 1 ? copies + 'x' : '') + '.txt';
var input = require('./' + infile);
var cardData = input.cardData;
// convert each card obj into a line of text
var lines = _.map(cardData, card => encodeCard(card));
var lines2 = [];
for(var i=0; i<copies; i++) {
lines2 = _.concat(lines2, lines);
}
if(shuffle) {
lines2 = _.shuffle(lines2);
}
var output = '';
_.each(lines2, line => {
output += line + '\r\n';
});
fs.writeFile(outfile, output);
})();