Pull out gear into separate modules

This commit is contained in:
Blade Barringer
2015-11-16 17:29:13 -06:00
parent 2b8cf178b0
commit 639dfb31d7
29 changed files with 3022 additions and 5567 deletions

View File

@@ -1,25 +0,0 @@
import {armor as baseArmor} from './sets/base';
import {armor as warriorArmor} from './sets/warrior';
import {armor as rogueArmor} from './sets/rogue';
import {armor as healerArmor} from './sets/healer';
import {armor as wizardArmor} from './sets/wizard';
import {armor as specialArmor} from './sets/special';
import {armor as mysteryArmor} from './sets/mystery';
import {armor as armoireArmor} from './sets/armoire';
let armor = {
base: baseArmor,
warrior: warriorArmor,
rogue: rogueArmor,
wizard: wizardArmor,
healer: healerArmor,
special: specialArmor,
mystery: mysteryArmor,
armoire: armoireArmor,
};
export default armor;

View File

@@ -1,13 +0,0 @@
import {back as baseBack} from './sets/base';
import {back as mysteryBack} from './sets/mystery';
import {back as specialBack} from './sets/special';
let back = {
base: baseBack,
mystery: mysteryBack,
special: specialBack,
};
export default back;

View File

@@ -1,11 +0,0 @@
import {body as baseBody} from './sets/base';
import {body as specialBody} from './sets/special';
let body = {
base: baseBody,
special: specialBody,
};
export default body;

View File

@@ -1,14 +0,0 @@
import {eyewear as baseEyewear} from './sets/base';
import {eyewear as armoireEyewear} from './sets/armoire';
import {eyewear as mysteryEyewear} from './sets/mystery';
import {eyewear as specialEyewear} from './sets/special';
let eyewear = {
base: baseEyewear,
special: specialEyewear,
mystery: mysteryEyewear,
armoire: armoireEyewear,
};
export default eyewear;

View File

@@ -1,13 +0,0 @@
import {headAccessory as baseHeadAccessory} from './sets/base';
import {headAccessory as specialHeadAccessory} from './sets/special';
import {headAccessory as mysteryHeadAccessory} from './sets/mystery';
let headAccessory = {
base: baseHeadAccessory,
special: specialHeadAccessory,
mystery: mysteryHeadAccessory,
};
export default headAccessory;

View File

@@ -1,25 +0,0 @@
import {head as baseHead} from './sets/base';
import {head as healerHead} from './sets/healer';
import {head as rogueHead} from './sets/rogue';
import {head as warriorHead} from './sets/warrior';
import {head as wizardHead} from './sets/wizard';
import {head as armoireHead} from './sets/armoire';
import {head as mysteryHead} from './sets/mystery';
import {head as specialHead} from './sets/special';
let head = {
base: baseHead,
warrior: warriorHead,
rogue: rogueHead,
wizard: wizardHead,
healer: healerHead,
special: specialHead,
mystery: mysteryHead,
armoire: armoireHead,
};
export default head;

View File

@@ -1,119 +0,0 @@
import {each, defaults} from 'lodash';
import moment from 'moment';
//--------------------------------------------------
// Gear is structured by equipment type, but organized by set. Each set exports the equipment for each type that it has
//
// The class sets have numbered key values, as they are purchased sequentially
//
// <equipment_key> : {
// key: <gear_type>_<set_name>_<index>,
// type: <gear_type>,
// klass: <set_name>,
// index: <index>,
// text: t(<gear_type><set_name><formatted_equipment_key>Text),
// notes: t(<gear_type><set_name><formatted_equipment_key>Notes {
// <gear_attributes>
// }),
// con: <con_value>,
// int: <int_value>,
// per: <per_value>,
// str: <str_value>,
// value: <value>,
// last: <last_boolean>,
//
// event: <event>,
// canOwn: <canOwn_function>,
// mystery: <mystery_set_key>
// }
//
// <gear_type> - What type of equipment it is (armor, head, weapon, etc)
// <set_name> - What set this gear is a part of (special, mystery, warrior, etc)
// <index> - The order in this particular set
// <formatted_equipment_key> - CamelCased version of key
//
// <gear_attributes> - if gear has stat bonuses, they are automatically applied to notes
//
// <con_value> - Boost to con, defaults to 0
// <int_value> - Boost to int, defaults to 0
// <per_value> - Boost to per, defaults to 0
// <str_value> - Boost to str, defaults to 0
//
// <value> - Price in gold
// <last_boolean> - whether this is the last in a particular class set
//
// <event> - the event key, present if gear is part of an event
// <canOwn_function> - a function that determines whether or not gear can be purchased in the rewards column
// <mystery_set_key> - the mystery set key, present if item is a mystery item
//
//--------------------------------------------------
import classes from '../classes';
import weapon from './weapon';
import armor from './armor';
import head from './head';
import shield from './shield';
import back from './back';
import body from './body';
import headAccessory from './head-accessory';
import eyewear from './eyewear';
const GEAR_TYPES = [ 'weapon', 'armor', 'head', 'shield', 'body', 'back', 'headAccessory', 'eyewear']
let gear = {
weapon: weapon,
armor: armor,
head: head,
shield: shield,
back: back,
body: body,
headAccessory: headAccessory,
eyewear: eyewear,
};
let flat = {};
// The gear is exported as a tree (defined above), and a flat list (eg, {weapon_healer_1: .., shield_special_0: ...}) since
// they are needed in different forms at different points in the app
each(GEAR_TYPES, (type) => {
let classTypes = classes.concat(['base', 'special', 'mystery', 'armoire']);
each(classTypes, (klass) => {
each(gear[type][klass], (item, i) => {
let key = type + "_" + klass + "_" + i;
defaults(item, {
type: type,
key: key,
klass: klass,
index: i,
str: 0,
int: 0,
per: 0,
con: 0
});
if (item.event) {
let _canOwn = item.canOwn || (() => {
return true;
});
item.canOwn = (u) => {
return _canOwn(u) && ((u.items.gear.owned[key] != null) || (moment().isAfter(item.event.start) && moment().isBefore(item.event.end))) && (item.specialClass ? u.stats["class"] === item.specialClass : true);
};
}
if (item.mystery) {
item.canOwn = (u) => {
return u.items.gear.owned[key] != null;
};
}
flat[key] = item;
});
});
});
export default {
tree: gear,
flat: flat,
gearTypes: GEAR_TYPES
};

View File

@@ -1,400 +0,0 @@
import {
translator as t,
setGearSetDefaults
} from '../../helpers';
let armor = {
lunarArmor: {
value: 100,
str: 7,
int: 7,
set: 'soothing',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_lunarArmor != null;
})
},
gladiatorArmor: {
value: 100,
str: 7,
per: 7,
set: 'gladiator',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_gladiatorArmor != null;
})
},
rancherRobes: {
value: 100,
str: 5,
per: 5,
int: 5,
set: 'rancher',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_rancherRobes != null;
})
},
goldenToga: {
text: t('armorArmoireGoldenTogaText'),
notes: t('armorArmoireGoldenTogaNotes', {
attrs: 8
}),
value: 100,
str: 8,
con: 8,
set: 'goldenToga',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_goldenToga != null;
})
},
hornedIronArmor: {
value: 100,
con: 9,
per: 7,
set: 'hornedIron',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_hornedIronArmor != null;
})
},
plagueDoctorOvercoat: {
value: 100,
int: 6,
str: 5,
con: 6,
set: 'plagueDoctor',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_plagueDoctorOvercoat != null;
})
},
shepherdRobes: {
value: 100,
str: 9,
per: 9,
notes: t('armorArmoireShepherdRobesNotes', {
attrs: 9
}),
set: 'shepherd',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_shepherdRobes != null;
})
},
royalRobes: {
value: 100,
con: 5,
int: 5,
per: 5,
notes: t('armorArmoireRoyalRobesNotes', {
attrs: 9
}),
set: 'royal',
canOwn: ((u) => {
return u.items.gear.owned.armor_armoire_royalRobes != null;
})
}
};
let eyewear = {
plagueDoctorMask: {
value: 100,
set: 'plagueDoctor',
canOwn: ((u) => {
return u.items.gear.owned.eyewear_armoire_plagueDoctorMask != null;
})
}
};
let head = {
lunarCrown: {
value: 100,
con: 7,
per: 7,
set: 'soothing',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_lunarCrown != null;
})
},
redHairbow: {
value: 100,
str: 5,
int: 5,
con: 5,
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_redHairbow != null;
})
},
violetFloppyHat: {
value: 100,
per: 5,
int: 5,
con: 5,
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_violetFloppyHat != null;
})
},
gladiatorHelm: {
value: 100,
per: 7,
int: 7,
set: 'gladiator',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_gladiatorHelm != null;
})
},
rancherHat: {
value: 100,
str: 5,
per: 5,
int: 5,
set: 'rancher',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_rancherHat != null;
})
},
royalCrown: {
value: 100,
str: 10,
set: 'royal',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_royalCrown != null;
})
},
blueHairbow: {
value: 100,
per: 5,
int: 5,
con: 5,
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_blueHairbow != null;
})
},
goldenLaurels: {
text: t('headArmoireGoldenLaurelsText'),
notes: t('headArmoireGoldenLaurelsNotes', {
attrs: 8
}),
value: 100,
per: 8,
con: 8,
set: 'goldenToga',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_goldenLaurels != null;
})
},
hornedIronHelm: {
value: 100,
con: 9,
str: 7,
set: 'hornedIron',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_hornedIronHelm != null;
})
},
yellowHairbow: {
notes: t('headArmoireYellowHairbowNotes', {
attrs: 5
}),
value: 100,
int: 5,
per: 5,
str: 5,
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_yellowHairbow != null;
})
},
redFloppyHat: {
notes: t('headArmoireRedFloppyHatNotes', {
attrs: 6
}),
value: 100,
con: 6,
int: 6,
per: 6,
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_redFloppyHat != null;
})
},
plagueDoctorHat: {
value: 100,
int: 5,
str: 6,
con: 5,
set: 'plagueDoctor',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_plagueDoctorHat != null;
})
},
blackCat: {
notes: t('headArmoireBlackCatNotes', {
attrs: 9
}),
value: 100,
int: 9,
per: 9,
canOwn: (function(u) {
return u.items.gear.owned.head_armoire_blackCat != null;
})
},
orangeCat: {
notes: t('headArmoireOrangeCatNotes', {
attrs: 9
}),
value: 100,
con: 9,
str: 9,
canOwn: (function(u) {
return u.items.gear.owned.head_armoire_orangeCat != null;
})
},
blueFloppyHat: {
notes: t('headArmoireBlueFloppyHatNotes', {
attrs: 7
}),
value: 100,
con: 7,
int: 7,
per: 7,
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_blueFloppyHat != null;
})
},
shepherdHeaddress: {
value: 100,
int: 9,
set: 'shepherd',
canOwn: ((u) => {
return u.items.gear.owned.head_armoire_shepherdHeaddress != null;
})
},
};
let shield = {
gladiatorShield: {
value: 100,
con: 5,
str: 5,
set: 'gladiator',
canOwn: ((u) => {
return u.items.gear.owned.shield_armoire_gladiatorShield != null;
})
},
midnightShield: {
value: 100,
con: 10,
str: 2,
canOwn: ((u) => {
return u.items.gear.owned.shield_armoire_midnightShield != null;
})
},
royalCane: {
notes: t('shieldArmoireRoyalCaneNotes', {
attrs: 5
}),
value: 100,
con: 5,
int: 5,
per: 5,
set: 'royal',
canOwn: ((u) => {
return u.items.gear.owned.shield_armoire_royalCane != null;
})
}
};
let weapon = {
basicCrossbow: {
value: 100,
str: 5,
per: 5,
con: 5,
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_basicCrossbow != null;
})
},
lunarSceptre: {
value: 100,
con: 7,
int: 7,
set: 'soothing',
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_lunarSceptre != null;
})
},
rancherLasso: {
notes: t('weaponArmoireRancherLassoNotes', {
str: 5,
per: 5,
int: 5
}),
value: 100,
str: 5,
per: 5,
int: 5,
set: 'rancher',
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_rancherLasso != null;
})
},
mythmakerSword: {
notes: t('weaponArmoireMythmakerSwordNotes', {
attrs: 6
}),
value: 100,
str: 6,
per: 6,
set: 'goldenToga',
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_mythmakerSword != null;
})
},
ironCrook: {
notes: t('weaponArmoireIronCrookNotes', {
attrs: 7
}),
value: 100,
str: 7,
per: 7,
set: 'hornedIron',
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_ironCrook != null;
})
},
goldWingStaff: {
notes: t('weaponArmoireGoldWingStaffNotes', {
attrs: 4
}),
value: 100,
con: 4,
int: 4,
per: 4,
str: 4,
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_goldWingStaff != null;
})
},
batWand: {
value: 100,
int: 10,
per: 2,
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_batWand != null;
})
},
shepherdsCrook: {
value: 100,
con: 9,
set: 'shepherd',
canOwn: (function(u) {
return u.items.gear.owned.weapon_armoire_shepherdsCrook != null;
})
}
};
let armoireSet = {
armor: armor,
eyewear: eyewear,
head: head,
shield: shield,
weapon: weapon,
};
setGearSetDefaults(armoireSet, {setName: 'armoire'});
export default armoireSet;

View File

@@ -1,48 +0,0 @@
import {setGearSetDefaults} from '../../helpers';
let armor = {
0: { value: 0 },
};
let back = {
0: { value: 0 }
};
let body = {
0: { value: 0 }
};
let eyewear = {
0: { value: 0 }
};
let head = {
0: { value: 0 },
};
let headAccessory = {
0: { value: 0 },
};
let shield = {
0: { value: 0 },
};
let weapon = {
0: { value: 0 },
};
let baseSet = {
armor: armor,
back: back,
body: body,
eyewear: eyewear,
head: head,
headAccessory: headAccessory,
shield: shield,
weapon: weapon,
};
setGearSetDefaults(baseSet, {setName: 'base'});
export default baseSet;

View File

@@ -1,46 +0,0 @@
import {setGearSetDefaults} from '../../helpers';
let armor = {
1: { con: 6, value: 30 },
2: { con: 9, value: 45 },
3: { con: 12, value: 65 },
4: { con: 15, value: 90 },
5: { con: 18, value: 120, last: true },
};
let head = {
1: { int: 2, value: 15 },
2: { int: 3, value: 25 },
3: { int: 5, value: 40 },
4: { int: 7, value: 60 },
5: { int: 9, value: 80, last: true },
};
let shield = {
1: { con: 2, value: 20 },
2: { con: 4, value: 35 },
3: { con: 6, value: 50 },
4: { con: 9, value: 70 },
5: { con: 12, value: 90, last: true },
};
let weapon = {
0: { value: 0 },
1: { int: 2, value: 20 },
2: { int: 3, value: 30 },
3: { int: 5, value: 45 },
4: { int: 7, value: 65 },
5: { int: 9, value: 90 },
6: { int: 11, value: 120, last: true },
};
let healerSet = {
armor: armor,
head: head,
shield: shield,
weapon: weapon,
};
setGearSetDefaults(healerSet, {setName: 'healer'});
export default healerSet;

View File

@@ -1,87 +0,0 @@
import {setGearSetDefaults} from '../../helpers';
let armor = {
201402: { mystery: '201402', value: 0 },
201403: { mystery: '201403', value: 0 },
201405: { mystery: '201405', value: 0 },
201406: { mystery: '201406', value: 0 },
201407: { mystery: '201407', value: 0 },
201408: { mystery: '201408', value: 0 },
201409: { mystery: '201409', value: 0 },
201410: { mystery: '201410', value: 0 },
201412: { mystery: '201412', value: 0 },
201501: { mystery: '201501', value: 0 },
201503: { mystery: '201503', value: 0 },
201504: { mystery: '201504', value: 0 },
201506: { mystery: '201506', value: 0 },
201508: { mystery: '201508', value: 0 },
201509: { mystery: '201509', value: 0 },
301404: { mystery: '301404', value: 0 },
};
let back = {
201402: { mystery: '201402', value: 0 },
201404: { mystery: '201404', value: 0 },
201410: { mystery: '201410', value: 0 },
201504: { mystery: '201504', value: 0 },
201507: { mystery: '201507', value: 0 },
201510: { mystery: '201510', value: 0 },
};
let eyewear = {
201503: { mystery: '201503', value: 0 },
201506: { mystery: '201506', value: 0 },
201507: { mystery: '201507', value: 0 },
301404: { mystery: '301404', value: 0 },
301405: { mystery: '301405', value: 0 },
};
let head = {
201402: { mystery: '201402', value: 0 },
201405: { mystery: '201405', value: 0 },
201406: { mystery: '201406', value: 0 },
201407: { mystery: '201407', value: 0 },
201408: { mystery: '201408', value: 0 },
201411: { mystery: '201411', value: 0 },
201412: { mystery: '201412', value: 0 },
201501: { mystery: '201501', value: 0 },
201505: { mystery: '201505', value: 0 },
201508: { mystery: '201508', value: 0 },
201509: { mystery: '201509', value: 0 },
301404: { mystery: '301404', value: 0 },
301405: { mystery: '301405', value: 0 },
};
let headAccessory = {
201403: { mystery: '201403', value: 0 },
201404: { mystery: '201404', value: 0 },
201409: { mystery: '201409', value: 0 },
201502: { mystery: '201502', value: 0 },
201510: { mystery: '201510', value: 0 },
301405: { mystery: '301405', value: 0 },
};
let shield = {
301405: { mystery: '301405', value: 0 },
};
let weapon = {
201411: { mystery: '201411', value: 0 },
201502: { mystery: '201502', value: 0 },
201505: { mystery: '201505', value: 0 },
301404: { mystery: '301404', value: 0 },
};
let mysterySet = {
armor: armor,
back: back,
eyewear: eyewear,
head: head,
headAccessory: headAccessory,
shield: shield,
weapon: weapon,
};
setGearSetDefaults(mysterySet, {setName: 'mystery'});
export default mysterySet;

View File

@@ -1,37 +0,0 @@
import {setGearSetDefaults} from '../../helpers';
let armor = {
1: { per: 6, value: 30 },
2: { per: 9, value: 45 },
3: { per: 12, value: 65 },
4: { per: 15, value: 90 },
5: { per: 18, value: 120, last: true },
};
let head = {
1: { per: 2, value: 15 },
2: { per: 4, value: 25 },
3: { per: 6, value: 40 },
4: { per: 9, value: 60 },
5: { per: 12, value: 80, last: true },
};
let weapon = {
0: { str: 0, value: 0 },
1: { str: 2, value: 20 },
2: { str: 3, value: 35 },
3: { str: 4, value: 50 },
4: { str: 6, value: 70 },
5: { str: 8, value: 90 },
6: { str: 10, value: 120, last: true },
};
let rogueSet = {
armor: armor,
head: head,
weapon: weapon,
};
setGearSetDefaults(rogueSet, {setName: 'rogue'});
export default rogueSet;

File diff suppressed because it is too large Load Diff

View File

@@ -1,46 +0,0 @@
import {setGearSetDefaults} from '../../helpers';
let armor = {
1: { con: 3, value: 30 },
2: { con: 5, value: 45 },
3: { con: 7, value: 65 },
4: { con: 9, value: 90 },
5: { con: 11, value: 120, last: true },
};
let head = {
1: { str: 2, value: 15 },
2: { str: 4, value: 25 },
3: { str: 6, value: 40 },
4: { str: 9, value: 60 },
5: { str: 12, value: 80, last: true },
};
let shield = {
1: { con: 2, value: 20 },
2: { con: 3, value: 35 },
3: { con: 5, value: 50 },
4: { con: 7, value: 70 },
5: { con: 9, value: 90, last: true },
};
let weapon = {
0: { value: 1 },
1: { str: 3, value: 20 },
2: { str: 6, value: 30 },
3: { str: 9, value: 45 },
4: { str: 12, value: 65 },
5: { str: 15, value: 90 },
6: { str: 18, value: 120, last: true },
};
let warriorSet = {
armor: armor,
head: head,
shield: shield,
weapon: weapon,
};
setGearSetDefaults(warriorSet, {setName: 'warrior'});
export default warriorSet;

View File

@@ -1,44 +0,0 @@
import {setGearSetDefaults} from '../../helpers';
let armor = {
1: { int: 2, value: 30 },
2: { int: 4, value: 45 },
3: { int: 6, value: 65 },
4: { int: 9, value: 90 },
5: { int: 12, value: 120, last: true },
};
let head = {
1: { per: 2, value: 15 },
2: { per: 3, value: 25 },
3: { per: 5, value: 40 },
4: { per: 7, value: 60 },
5: { per: 10, value: 80, last: true },
};
let shield = {
// Wizard's weapons are two handed
// And thus do not have shields
// But the content structure still expects an object
};
let weapon = {
0: { twoHanded: true, value: 0 },
1: { twoHanded: true, int: 3, per: 1, value: 30 },
2: { twoHanded: true, int: 6, per: 2, value: 50 },
3: { twoHanded: true, int: 9, per: 3, value: 80 },
4: { twoHanded: true, int: 12, per: 5, value: 120 },
5: { twoHanded: true, int: 15, per: 7, value: 160 },
6: { twoHanded: true, int: 18, per: 10, value: 200, last: true },
};
let wizardSet = {
armor: armor,
head: head,
shield: shield,
weapon: weapon,
};
setGearSetDefaults(wizardSet, {setName: 'wizard'});
export default wizardSet;

View File

@@ -1,29 +0,0 @@
import {cloneDeep} from 'lodash';
import {shield as baseShield} from './sets/base';
import {shield as healerShield} from './sets/healer';
import {weapon as rogueWeapon} from './sets/rogue';
import {shield as warriorShield} from './sets/warrior';
import {shield as wizardShield} from './sets/wizard';
import {shield as armoireShield} from './sets/armoire';
import {shield as mysteryShield} from './sets/mystery';
import {shield as specialShield} from './sets/special';
let rogueShield = cloneDeep(rogueWeapon);
let shield = {
base: baseShield,
warrior: warriorShield,
rogue: rogueShield,
wizard: wizardShield,
healer: healerShield,
special: specialShield,
mystery: mysteryShield,
armoire: armoireShield,
};
export default shield;

View File

@@ -1,25 +0,0 @@
import {weapon as baseWeapon} from './sets/base';
import {weapon as healerWeapon} from './sets/healer';
import {weapon as rogueWeapon} from './sets/rogue';
import {weapon as warriorWeapon} from './sets/warrior';
import {weapon as wizardWeapon} from './sets/wizard';
import {weapon as armoireWeapon} from './sets/armoire';
import {weapon as mysteryWeapon} from './sets/mystery';
import {weapon as specialWeapon} from './sets/special';
let weapon = {
base: baseWeapon,
warrior: warriorWeapon,
rogue: rogueWeapon,
wizard: wizardWeapon,
healer: healerWeapon,
special: specialWeapon,
mystery: mysteryWeapon,
armoire: armoireWeapon,
};
export default weapon;