@@ -1,8 +1,6 @@ | |||
module.exports = { | |||
name: 'The Crystal Caves', | |||
level: [14, 16], | |||
addLevel: 0, | |||
resources: {}, | |||
mobs: { | |||
default: { | |||
spells: [{ | |||
@@ -1,8 +1,6 @@ | |||
module.exports = { | |||
name: 'The Estuary', | |||
level: [15, 18], | |||
addLevel: 0, | |||
resources: {}, | |||
mobs: { | |||
default: { | |||
faction: 'hostile', | |||
@@ -1,429 +0,0 @@ | |||
module.exports = { | |||
name: 'Fishing Tournament', | |||
description: 'Catch the heaviest Ancient Carp for a chance to win Angler\'s Marks. Speak with Angler Nayla for more info.', | |||
distance: -1, | |||
cron: '0 7,19 * * *', | |||
notifications: [{ | |||
mark: 0, | |||
msg: 'Angler Nayla: The Fishing Tournament begins in 10 minutes.', | |||
desc: 'Begins in 10 minutes.' | |||
}, { | |||
mark: 857, | |||
msg: 'Angler Nayla: The Fishing Tournament begins in 5 minutes.', | |||
desc: 'Begins in 5 minutes.' | |||
}, { | |||
mark: 1543, | |||
msg: 'Angler Nayla: The Fishing Tournament begins in 1 minute.', | |||
desc: 'Begins in 1 minute.' | |||
}, { | |||
mark: 1714, | |||
msg: 'Angler Nayla: The Fishing Tournament has begun!', | |||
desc: '' | |||
}, { | |||
mark: 2571, | |||
msg: 'Angler Nayla: The Fishing Tournament ends in 5 minutes.', | |||
desc: 'Ends in 5 minutes.' | |||
}, { | |||
mark: 3256, | |||
msg: 'Angler Nayla: The Fishing Tournament ends in 1 minute.', | |||
desc: 'Ends in 1 minute.' | |||
}, { | |||
mark: 3428, | |||
msg: 'Angler Nayla: The Fishing Tournament is over.' | |||
}], | |||
duration: 4285, | |||
prizeTime: 3428, | |||
descBase: 'Catch the heaviest Ancient Carp for a chance to win Angler\'s Marks. Speak with Angler Nayla for more info.', | |||
descLeaderboard: null, | |||
descTimer: null, | |||
events: { | |||
afterGiveRewards: function (events) { | |||
let event = events.getEvent('Fishing Tournament'); | |||
event.descBase = 'The tournament has ended.'; | |||
event.descLeaderboard = null; | |||
event.descTimer = null; | |||
events.setEventDescription('Fishing Tournament', this.description); | |||
}, | |||
beforeSetDescription: function (events) { | |||
let event = events.getEvent('Fishing Tournament'); | |||
event.description = event.descBase; | |||
if (event.descLeaderboard) | |||
event.description += '<br /><br />' + event.descLeaderboard; | |||
if (event.descTimer) | |||
event.description += '<br /><br />' + event.descTimer; | |||
} | |||
}, | |||
helpers: { | |||
updateRewards: function (event, anglerNayla) { | |||
event.ranks = {}; | |||
event.rewards = {}; | |||
event.weights = {}; | |||
let tempFish = anglerNayla.inventory.items | |||
.filter(i => (i.name.indexOf('Ancient Carp') > -1)) | |||
.sort((a, b) => (b.stats.weight - a.stats.weight)); | |||
let fish = []; | |||
tempFish.forEach(function (t) { | |||
if (!fish.some(f => (f.owner === t.owner))) | |||
fish.push(t); | |||
}); | |||
let rewardCounts = [25, 15, 7]; | |||
let tpl = { | |||
name: 'Angler\'s Mark', | |||
sprite: [12, 9], | |||
noDrop: true, | |||
noDestroy: true, | |||
noSalvage: true | |||
}; | |||
let consolationQty = 2; | |||
let rank = 0; | |||
let lastWeight = fish[0].stats.weight; | |||
for (let i = 0; i < fish.length; i++) { | |||
let f = fish[i]; | |||
if (event.rewards[f.owner]) | |||
continue; | |||
if (f.stats.weight < lastWeight) { | |||
lastWeight = f.stats.weight; | |||
rank++; | |||
} | |||
event.ranks[f.owner] = rank + 1; | |||
event.weights[f.owner] = f.stats.weight; | |||
let rewardQty = rewardCounts[rank] || consolationQty; | |||
event.rewards[f.owner] = [extend({ | |||
quantity: rewardQty | |||
}, tpl)]; | |||
} | |||
}, | |||
updateDescription: function (event, events) { | |||
let ranks = event.ranks; | |||
let weights = event.weights; | |||
let desc = 'Leaderboard:<br />'; | |||
for (let playerName in ranks) | |||
desc += `${ranks[playerName]}: ${playerName} (${weights[playerName]}) <br />`; | |||
desc = desc.substr(0, desc.length - 6); | |||
event.config.descLeaderboard = desc; | |||
events.setEventDescription('Fishing Tournament'); | |||
}, | |||
updateWinText: function (event, events) { | |||
let ranks = event.ranks; | |||
let winText = 'Angler Nayla: '; | |||
let winners = Object.keys(ranks).filter(r => (ranks[r] === 1)); | |||
let wLen = winners.length; | |||
winners.forEach(function (w, i) { | |||
winText += ((wLen > 1) && (i === wLen - 1)) ? `and ${w} ` : `${w} `; | |||
}); | |||
winText += 'won!'; | |||
events.setWinText('Fishing Tournament', winText); | |||
}, | |||
giveFish: function (source, target) { | |||
let srcInventory = source.inventory; | |||
let tgtInventory = target.inventory; | |||
srcInventory.items | |||
.filter(i => (i.name.indexOf('Ancient Carp') > -1)) | |||
.sort((a, b) => (b.stats.weight - a.stats.weight)) | |||
.forEach(function (f, i) { | |||
if (i === 0) { | |||
f.owner = source.name; | |||
tgtInventory.getItem(extend({}, f)); | |||
} | |||
srcInventory.destroyItem(f.id); | |||
}); | |||
}, | |||
getRank: function (event, playerName) { | |||
let ranks = event.ranks; | |||
if (!ranks) | |||
return -1; | |||
return (ranks[playerName] || -1); | |||
} | |||
}, | |||
phases: [{ | |||
type: 'spawnMob', | |||
endMark: 1714, | |||
mobs: { | |||
name: 'Angler Nayla', | |||
attackable: false, | |||
level: 20, | |||
cell: 69, | |||
id: 'anglerNayla', | |||
hpMult: 1, | |||
pos: { | |||
x: 140, | |||
y: 46 | |||
}, | |||
dialogue: { | |||
auto: true, | |||
config: { | |||
1: { | |||
msg: [{ | |||
msg: 'Hi there, are you here to compete?', | |||
options: [1.1, 1.2, 1.3] | |||
}], | |||
options: { | |||
1.1: { | |||
msg: 'What\'s happening here?', | |||
goto: 2 | |||
}, | |||
1.2: { | |||
msg: 'Could I please have a Competition Rod?', | |||
goto: 5 | |||
}, | |||
1.3: { | |||
msg: 'I would like to trade some Angler\'s Marks.', | |||
goto: 'tradeBuy' | |||
} | |||
} | |||
}, | |||
2: { | |||
msg: 'Why, the Grand Fishing Tournament, of course! Anglers come from all over to compete in this esteemed event.', | |||
options: { | |||
2.1: { | |||
msg: 'How does it work?', | |||
goto: 3 | |||
} | |||
} | |||
}, | |||
3: { | |||
msg: 'Simply catch fish during the tournament. If you\'re lucky, you\'ll catch an Ancient Carp. Bring them to me and if you catch the heaviest one, you win!', | |||
options: { | |||
3.1: { | |||
msg: 'What are the prizes?', | |||
goto: 4 | |||
} | |||
} | |||
}, | |||
4: { | |||
msg: 'The top three participants will win Angler\'s Marks that can be exchanged for Fishing Rods and Cerulean Pearls.', | |||
options: { | |||
4.1: { | |||
msg: 'I would like to ask something else.', | |||
goto: 1 | |||
} | |||
} | |||
}, | |||
5: { | |||
msg: [{ | |||
msg: '', | |||
options: [1.1, 1.2, 1.3, 1.4] | |||
}], | |||
cpn: 'dialogue', | |||
method: 'getItem', | |||
args: [{ | |||
item: { | |||
name: 'Competition Rod', | |||
slot: 'tool', | |||
sprite: [11, 1], | |||
type: 'Fishing Rod', | |||
worth: 0, | |||
noSalvage: true, | |||
noAugment: true, | |||
stats: { | |||
catchSpeed: 50, | |||
catchChance: 25 | |||
} | |||
}, | |||
successMsg: 'May it cast true.', | |||
existsMsg: 'Oh, it seems that you already have one.' | |||
}] | |||
}, | |||
tradeBuy: { | |||
cpn: 'trade', | |||
method: 'startBuy', | |||
args: [{ | |||
targetName: 'angler nayla' | |||
}] | |||
} | |||
} | |||
}, | |||
trade: { | |||
items: { | |||
min: 0, | |||
max: 0 | |||
}, | |||
forceItems: [{ | |||
name: 'Cerulean Pearl', | |||
material: true, | |||
sprite: [11, 9], | |||
infinite: true, | |||
quality: 3, | |||
worth: { | |||
currency: 'Angler\'s Mark', | |||
amount: 4 | |||
} | |||
}, { | |||
name: 'Common Fishing Rod', | |||
type: 'Fishing Rod', | |||
slot: 'tool', | |||
quality: 0, | |||
worth: { | |||
currency: 'Angler\'s Mark', | |||
amount: 5 | |||
}, | |||
sprite: [11, 0], | |||
infinite: true, | |||
stats: { | |||
stats: '???' | |||
} | |||
}, { | |||
name: 'Magic Fishing Rod', | |||
type: 'Fishing Rod', | |||
slot: 'tool', | |||
quality: 1, | |||
worth: { | |||
currency: 'Angler\'s Mark', | |||
amount: 15 | |||
}, | |||
sprite: [11, 0], | |||
infinite: true, | |||
stats: { | |||
stats: '???' | |||
} | |||
}, { | |||
name: 'Rare Fishing Rod', | |||
type: 'Fishing Rod', | |||
slot: 'tool', | |||
quality: 2, | |||
worth: { | |||
currency: 'Angler\'s Mark', | |||
amount: 45 | |||
}, | |||
sprite: [11, 0], | |||
infinite: true, | |||
stats: { | |||
stats: '???' | |||
} | |||
}], | |||
faction: { | |||
id: 'anglers' | |||
}, | |||
level: { | |||
min: 1, | |||
max: 5 | |||
}, | |||
markup: { | |||
buy: 0.25, | |||
sell: 2.5 | |||
} | |||
} | |||
} | |||
}, { | |||
type: 'hookEvents', | |||
endMark: 3428, | |||
auto: true, | |||
events: { | |||
beforeGatherResource: function (gatherResult, gatherer) { | |||
if (gatherResult.nodeType !== 'fish') | |||
return; | |||
let hasCompRod = gatherer.inventory.items.some(i => ((i.name === 'Competition Rod') && (i.eq))); | |||
if (!hasCompRod) | |||
return; | |||
gatherResult.items.forEach(function (g) { | |||
extend(g, { | |||
name: 'Ancient Carp', | |||
sprite: [11, 4], | |||
noDrop: true, | |||
worth: 0 | |||
}); | |||
}); | |||
}, | |||
beforeEnterPool: function (gatherResult, gatherer) { | |||
if (gatherResult.nodeName === 'Sun Carp') | |||
gatherResult.nodeName = 'Ancient Carp'; | |||
} | |||
} | |||
}, { | |||
type: 'modifyDialogue', | |||
endMark: 3428, | |||
mobId: 'anglerNayla', | |||
dialogue: { | |||
add: { | |||
1: { | |||
1.4: { | |||
msg: 'I\'d like to hand in some fish.', | |||
prereq: function (obj) { | |||
let fishies = obj.inventory.items.find(i => (i.name.indexOf('Ancient Carp') > -1)); | |||
return !!fishies; | |||
}, | |||
goto: 'giveFish' | |||
} | |||
}, | |||
giveFish: { | |||
msg: [{ | |||
msg: '', | |||
options: [1.1, 1.2, 1.3, 1.4] | |||
}], | |||
method: function (obj) { | |||
let eventConfig = this.instance.events.getEvent('Fishing Tournament'); | |||
if (!eventConfig) | |||
return; | |||
let helpers = eventConfig.helpers; | |||
let event = eventConfig.event; | |||
let oldRank = helpers.getRank(event, obj.name); | |||
helpers.giveFish(obj, this); | |||
helpers.updateRewards(event, this); | |||
let newRank = helpers.getRank(event, obj.name); | |||
helpers.updateDescription(event, this.instance.events); | |||
if (oldRank !== newRank) { | |||
helpers.updateWinText(event, this.instance.events); | |||
return { | |||
1: 'Wow, that one\'s huge. You took first place!', | |||
2: 'Nice catch. You took second place!', | |||
3: 'Not bad at all. You took third place!' | |||
}[newRank]; | |||
} else if (newRank === 1) | |||
return 'Great, you\'re still in first place!'; | |||
return 'Not quite heavy enough, keep trying!'; | |||
} | |||
} | |||
} | |||
} | |||
}, { | |||
type: 'modifyDialogue', | |||
mobId: 'anglerNayla', | |||
dialogue: { | |||
remove: { | |||
1: { | |||
1.4: null | |||
}, | |||
giveFish: null | |||
} | |||
} | |||
}] | |||
}; |
@@ -1,22 +1,6 @@ | |||
module.exports = { | |||
name: 'Fjolarok', | |||
level: [1, 10], | |||
resources: { | |||
Skyblossom: { | |||
type: 'herb', | |||
max: 4 | |||
}, | |||
Emberleaf: { | |||
type: 'herb', | |||
max: 1, | |||
cdMax: 1710 | |||
}, | |||
'Sun Carp School': { | |||
max: 900, | |||
type: 'fish', | |||
quantity: [6, 12] | |||
} | |||
}, | |||
objects: { | |||
shopestrid: { | |||
properties: { | |||
@@ -1,40 +0,0 @@ | |||
let events = require('../misc/events'); | |||
module.exports = { | |||
init: function () { | |||
events.emit('onBeforeGetResourceNodeConfig', this); | |||
}, | |||
Moonbell: { | |||
sheetName: 'tiles', | |||
cell: 50, | |||
itemSprite: [1, 1] | |||
}, | |||
Skyblossom: { | |||
sheetName: 'tiles', | |||
cell: 52, | |||
itemSprite: [1, 2] | |||
}, | |||
Emberleaf: { | |||
sheetName: 'tiles', | |||
cell: 51, | |||
itemSprite: [1, 0] | |||
}, | |||
'Sun Carp School': { | |||
sheetName: 'objects', | |||
itemSprite: [11, 2], | |||
baseWeight: 3, | |||
ttl: 30 | |||
}, | |||
Stinkcap: { | |||
sheetName: 'tiles', | |||
cell: 57, | |||
itemSprite: [2, 0] | |||
}, | |||
Mudfish: { | |||
sheetName: 'objects', | |||
itemSprite: [11, 3], | |||
baseWeight: 5, | |||
ttl: 30 | |||
} | |||
}; |
@@ -220,26 +220,21 @@ module.exports = { | |||
}, | |||
giveRewards: function (config) { | |||
let event = config.event; | |||
const { event: { rewards = {} } } = config; | |||
config.event.participators.forEach(function (p) { | |||
let rList = [{ | |||
nameLike: 'Ancient Carp', | |||
removeAll: true | |||
}]; | |||
let rewards = event.rewards; | |||
if ((rewards) && (rewards[p.name])) { | |||
rewards[p.name].forEach(r => rList.push(r)); | |||
if (rList.length > 1) | |||
rList[1].msg = `${event.config.name} reward:`; | |||
} | |||
Object.entries(rewards).forEach(e => { | |||
const { name, rList } = e; | |||
this.instance.mail.sendMail(p.name, rList); | |||
}, this); | |||
if (!rList.length) | |||
return; | |||
rList[0].msg = `${config.name} reward:`; | |||
this.instance.mail.sendMail(name, rList); | |||
}); | |||
if ((config.events) && (config.events.afterGiveRewards)) | |||
config.events.afterGiveRewards(this); | |||
config.events.afterGiveRewards(this, config); | |||
}, | |||
stopEvent: function (config) { | |||
@@ -452,12 +447,8 @@ module.exports = { | |||
event.participators.push(obj); | |||
result.push(event); | |||
let rList = [{ | |||
nameLike: 'Ancient Carp', | |||
removeAll: true | |||
}]; | |||
this.instance.mail.sendMail(obj.name, rList); | |||
if (event.config.events && event.config.events.onParticipantJoin) | |||
event.config.events.onParticipantJoin(this, obj); | |||
continue; | |||
} | |||
@@ -478,12 +469,8 @@ module.exports = { | |||
event.participators.push(obj); | |||
result.push(event); | |||
let rList = [{ | |||
nameLike: 'Ancient Carp', | |||
removeAll: true | |||
}]; | |||
this.instance.mail.sendMail(obj.name, rList); | |||
if (event.config.events && event.config.events.onParticipantJoin) | |||
event.config.events.onParticipantJoin(this, obj); | |||
break; | |||
} | |||
@@ -9,11 +9,15 @@ let factions = require('./config/factions'); | |||
let classes = require('./config/spirits'); | |||
let spellsConfig = require('./config/spellsConfig'); | |||
let spells = require('./config/spells'); | |||
let itemTypes = require('./items/config/types'); | |||
let mapList = require('./config/maps/mapList'); | |||
let sheets = require('./security/sheets'); | |||
let fixes = require('./fixes/fixes'); | |||
let profanities = require('./misc/profanities'); | |||
const itemTypes = require('./items/config/types'); | |||
const itemPrefixes = require('./items/config/prefixes'); | |||
const itemSuffixes = require('./items/config/suffixes'); | |||
const routerConfig = require('./security/routerConfig'); | |||
let startup = { | |||
@@ -36,7 +40,11 @@ let startup = { | |||
classes.init(); | |||
spellsConfig.init(); | |||
spells.init(); | |||
itemTypes.init(); | |||
itemPrefixes.init(); | |||
itemSuffixes.init(); | |||
profanities.init(); | |||
mapList.init(); | |||
components.init(this.onComponentsReady.bind(this)); | |||
@@ -1,4 +1,6 @@ | |||
module.exports = { | |||
const events = require('../../misc/events'); | |||
const prefixes = { | |||
generic: [ | |||
'aether', | |||
'abyssal', | |||
@@ -202,11 +204,14 @@ module.exports = { | |||
head: [ | |||
'masked' | |||
], | |||
tool: [ | |||
'angler%', | |||
'fisherman%', | |||
'linesman%', | |||
'trawler%' | |||
] | |||
tool: [] | |||
} | |||
}; | |||
module.exports = { | |||
prefixes, | |||
init: function () { | |||
events.emit('onBeforeGetItemNamePrefixes', prefixes); | |||
} | |||
}; |
@@ -1,4 +1,6 @@ | |||
module.exports = { | |||
const events = require('../../misc/events'); | |||
const suffixes = { | |||
generic: [ | |||
'absence', | |||
'abomination', | |||
@@ -187,23 +189,14 @@ module.exports = { | |||
'chain', | |||
'noose' | |||
], | |||
tool: [ | |||
'angler', | |||
'bait-caster', | |||
'baiter', | |||
'branch', | |||
'fish-catcher', | |||
'fish-stick', | |||
'fisher', | |||
'hook', | |||
'line', | |||
'lure', | |||
'pole', | |||
'reel', | |||
'rod', | |||
'stick', | |||
'tackle', | |||
'twig' | |||
] | |||
tool: [] | |||
} | |||
}; | |||
module.exports = { | |||
suffixes, | |||
init: function () { | |||
events.emit('onBeforeGetItemNameSuffixes', suffixes); | |||
} | |||
}; |
@@ -476,15 +476,11 @@ let types = { | |||
} | |||
} | |||
}, | |||
tool: { | |||
'Fishing Rod': { | |||
sprite: [11, 0] | |||
} | |||
} | |||
tool: {} | |||
}; | |||
module.exports = { | |||
types: types, | |||
types, | |||
init: function () { | |||
events.emit('onBeforeGetItemTypes', types); | |||
} | |||
@@ -1,3 +1,5 @@ | |||
const events = require('../misc/events'); | |||
let g1 = require('./generators/level'); | |||
let g2 = require('./generators/quality'); | |||
let g3 = require('./generators/slots'); | |||
@@ -31,6 +33,16 @@ module.exports = { | |||
let item = {}; | |||
const generateEvent = { | |||
blueprint, | |||
item, | |||
ignore: false | |||
}; | |||
events.emit('onBeforeGenerateItem', generateEvent); | |||
if (generateEvent.ignore) | |||
return item; | |||
const dropChancesEvent = { | |||
blueprint, | |||
spellChance: this.spellChance, | |||
@@ -98,6 +110,8 @@ module.exports = { | |||
if (blueprint.uses) | |||
item.uses = blueprint.uses; | |||
events.emit('onAfterGenerateItem', generateEvent); | |||
return item; | |||
}, | |||
@@ -1,5 +1,5 @@ | |||
let prefixes = require('../config/prefixes'); | |||
let suffixes = require('../config/suffixes'); | |||
const { prefixes } = require('../config/prefixes'); | |||
const { suffixes } = require('../config/suffixes'); | |||
module.exports = { | |||
generators: [ | |||
@@ -1,4 +1,4 @@ | |||
let statsFishingRod = require('./statsFishingRod'); | |||
const events = require('../../misc/events'); | |||
module.exports = { | |||
generators: { | |||
@@ -494,14 +494,19 @@ module.exports = { | |||
}, | |||
generate: function (item, blueprint, result) { | |||
if (item.slot === 'tool') { | |||
statsFishingRod.generate(item, blueprint, result); | |||
return; | |||
} | |||
if (!blueprint.statCount) | |||
item.stats = {}; | |||
const eventMsg = { | |||
item, | |||
blueprint, | |||
result, | |||
ignore: false | |||
}; | |||
events.emit('onBeforeGenerateItemStats', eventMsg); | |||
if (eventMsg.ignore) | |||
return; | |||
if (blueprint.noStats) | |||
return; | |||
@@ -1,57 +0,0 @@ | |||
module.exports = { | |||
generators: { | |||
catchChance: function (item, blueprint) { | |||
return random.expNorm(0, 60); | |||
}, | |||
catchSpeed: function (item, blueprint) { | |||
return random.expNorm(0, 150); | |||
}, | |||
fishRarity: function (item, blueprint) { | |||
return random.expNorm(0, 100); | |||
}, | |||
fishWeight: function (item, blueprint) { | |||
return random.expNorm(0, 75); | |||
}, | |||
fishItems: function (item, blueprint) { | |||
return random.expNorm(0, 50); | |||
} | |||
}, | |||
generate: function (item, blueprint, result) { | |||
let statCount = blueprint.statCount || (item.quality + 1); | |||
let stats = Object.keys(this.generators); | |||
if (!item.stats) | |||
item.stats = {}; | |||
for (let i = 0; i < statCount; i++) { | |||
let stat = stats[~~(Math.random() * stats.length)]; | |||
let value = Math.ceil(this.generators[stat].call(this, item, blueprint)); | |||
if (result) { | |||
result.addStatMsgs.push({ | |||
stat: stat, | |||
value: value | |||
}); | |||
} | |||
if (!item.stats[stat]) | |||
item.stats[stat] = 0; | |||
item.stats[stat] += value; | |||
if (blueprint.statCount) { | |||
if (!item.enchantedStats) | |||
item.enchantedStats = {}; | |||
if (item.enchantedStats[stat]) | |||
item.enchantedStats[stat] += value; | |||
else | |||
item.enchantedStats[stat] = value; | |||
} | |||
} | |||
} | |||
}; |
@@ -9,7 +9,6 @@ let randomMap = require('./randomMap'); | |||
let events = require('../events/events'); | |||
let scheduler = require('../misc/scheduler'); | |||
let mail = require('../mail/mail'); | |||
let resourceNodes = require('../config/resourceNodes'); | |||
let eventEmitter = require('../misc/events'); | |||
const transactions = require('../security/transactions'); | |||
@@ -24,7 +23,6 @@ module.exports = { | |||
this.zoneId = args.zoneId; | |||
spellCallbacks.init(); | |||
resourceNodes.init(); | |||
map.init(args); | |||
const fakeInstance = { | |||
@@ -14,11 +14,14 @@ let factions = require('../config/factions'); | |||
let classes = require('../config/spirits'); | |||
let spellsConfig = require('../config/spellsConfig'); | |||
let spells = require('../config/spells'); | |||
let itemTypes = require('../items/config/types'); | |||
let mapList = require('../config/maps/mapList'); | |||
let sheets = require('../security/sheets'); | |||
let itemEffects = require('../items/itemEffects'); | |||
const itemTypes = require('../items/config/types'); | |||
const itemPrefixes = require('../items/config/prefixes'); | |||
const itemSuffixes = require('../items/config/suffixes'); | |||
let onCpnsReady = function () { | |||
factions.init(); | |||
skins.init(); | |||
@@ -27,7 +30,11 @@ let onCpnsReady = function () { | |||
classes.init(); | |||
spellsConfig.init(); | |||
spells.init(); | |||
itemTypes.init(); | |||
itemPrefixes.init(); | |||
itemSuffixes.init(); | |||
mapList.init(); | |||
sheets.init(); | |||
itemEffects.init(); | |||