KHD

BFData.js

KHD
Jan 10th, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var dataPath = "../../bravefrontier_data/";
  2. // Data Dictionaries
  3. var unitData = require(dataPath+'info.json');
  4. var itemData = require(dataPath+'items.json');
  5. var evoData = require(dataPath+'evo_list.json');
  6. var unitDataJP = require(dataPath+'jp/info.json');
  7. var itemDataJP = require(dataPath+'jp/items.json');
  8. var evoDataJP = require(dataPath+'jp/evo_list.json');
  9. var romaji = require('./romaji_converter.js');
  10. // data.Missions = require();
  11. // Specific unit access, no searching (well advanced searching)
  12. var getUnit = function (rqid) {
  13.     rqid = rqid || "";
  14.     if (unitData[rqid]) return unitData[rqid];
  15.     for (var id in unitData) {
  16.         if (rqid.toLowerCase() === unitData[id].name.toLowerCase()) return unitData[id];
  17.     }
  18.     return null;
  19. };
  20. var getUnitJP = function (rqid) {
  21.     rqid = rqid || "";
  22.     if (unitDataJP[rqid]) return unitDataJP[rqid];
  23.     return null;
  24. };
  25.  
  26. // Data Search Functions
  27. var findUnit = function (name, returnAll) {
  28.     var name = name || "";
  29.     if (!name) return null;
  30.     var isID = !!(name.match(/^\d{5}\d?$/));
  31.     if (isID) {
  32.         var unit = unitData[name];
  33.         if (unit) return unit;
  34.         return null;
  35.     }
  36.     var possibleMatches = [];
  37.     for (var id in unitData) {
  38.         var unit = unitData[id];
  39.         if (name.toLowerCase() === unit.name.toLowerCase()) return unit;
  40.         if (unit.name.toLowerCase().split(' ').indexOf(name.toLowerCase()) >= 0) possibleMatches.push(unit);
  41.     }
  42.     possibleMatches.sort(function(a,b){return b.rarity - a.rarity})
  43.     if (returnAll) return possibleMatches;
  44.     return possibleMatches[0];
  45. };
  46. var findUnitJP = function (name, returnAll) {
  47.     var name = (name || "").toLowerCase();
  48.     if (!name) return null;
  49.     var UNIT_EXCEPTIONS = {
  50.         "duel-gx": 60253,
  51.         "duel-gx 2": 60254,
  52.         "duel-gx ii": 60254,
  53.         "duel-sgx": 60255,
  54.         "maxwell": 50525
  55.     };
  56.     if (name in UNIT_EXCEPTIONS) return unitDataJP[UNIT_EXCEPTIONS[name]];
  57.     var possibleMatchesGL = [];
  58.     var globalUnit;
  59.     if (!!name.match(/[a-z]/)) {
  60.         // See if the name is a unit in global
  61.         var globalUnit = getUnit(name) || findUnit(name);
  62.         // var possibleMatchesGL = findUnit(name, true);
  63.         name = romaji.toKana(name).katakana;
  64.     }
  65.     var isID = !!(name.match(/^\d{5}\d?$/));
  66.     if (isID) {
  67.         var unit = unitDataJP[name];
  68.         if (unit) return unit;
  69.         return null;
  70.     }
  71.     var isGuideID = !!(name.match(/^#\d{3}\d?$/));
  72.     if (isGuideID) {
  73.         for (var id in unitDataJP) {
  74.             if (unitDataJP[id]['guide_id'] === name.substr(1).valueOf()) return unitDataJP[id];
  75.         }
  76.         return null;
  77.     }
  78.     var possibleMatches = [];
  79.     // return name;
  80.     for (var id in unitDataJP) {
  81.         var unit = unitDataJP[id];
  82.         if (name === unit.name.substr(-name.length)) {
  83.             possibleMatches.push(unit);
  84.         } else if (unit.name.toLowerCase().split(' ').indexOf(name.toLowerCase()) >= 0) {
  85.             possibleMatches.push(unit);
  86.         }
  87.     }
  88.     possibleMatches.sort(function(a,b){return b.rarity - a.rarity})
  89.     if (!possibleMatches.length) {
  90.         if (globalUnit && unitDataJP[globalUnit.id]) {
  91.             return unitDataJP[globalUnit.id];
  92.         }
  93.         return false;
  94.     }
  95.     if (returnAll) return possibleMatches;
  96.     return possibleMatches[0];
  97. };
  98.  
  99. var searchUnit = function(){};
  100. var searchUnitJP = function(){};
  101.  
  102. module.exports = {
  103.     Units: unitData,
  104.     Items: itemData,
  105.     Evolutions: evoData,
  106.     Evos: evoData,
  107.     getUnit: getUnit,
  108.     findUnit: findUnit,
  109.     searchUnit: searchUnit,
  110.     getUnitJP: getUnitJP,
  111.     findUnitJP: findUnitJP,
  112.     searchUnitJP: searchUnitJP,
  113.     JP: {
  114.         Units: unitDataJP,
  115.         Items: itemDataJP,
  116.         Evolutions: evoDataJP,
  117.         Evos: evoDataJP,
  118.         getUnit: getUnitJP,
  119.         findUnit: findUnitJP,
  120.         searchUnit: searchUnitJP,
  121.     },
  122.     updateData: function(){},
  123.     romaji: romaji
  124. };
Advertisement
Add Comment
Please, Sign In to add comment