Browse Source

renamed iwd mod folders

tags/v0.3.0
Big Bad Waffle 5 years ago
parent
commit
f86eee3a60
23 changed files with 0 additions and 1616 deletions
  1. +0
    -1
      src/server/mods/mod-iwd-ranger
  2. +0
    -9
      src/server/mods/mod-iwd-souls-moor/factions/pumpkinSailor.js
  3. BIN
     
  4. BIN
     
  5. BIN
     
  6. BIN
     
  7. BIN
     
  8. BIN
     
  9. BIN
     
  10. BIN
     
  11. BIN
     
  12. BIN
     
  13. BIN
     
  14. +0
    -244
      src/server/mods/mod-iwd-souls-moor/index.js
  15. +0
    -106
      src/server/mods/mod-iwd-souls-moor/maps/fjolarok/dialogues.js
  16. +0
    -112
      src/server/mods/mod-iwd-souls-moor/maps/fjolarok/events/halloween.js
  17. +0
    -156
      src/server/mods/mod-iwd-souls-moor/maps/fjolarok/events/halloweenBoss.js
  18. +0
    -523
      src/server/mods/mod-iwd-souls-moor/maps/fjolarok/map.json
  19. +0
    -3
      src/server/mods/mod-iwd-souls-moor/maps/fjolarok/quests.js
  20. +0
    -202
      src/server/mods/mod-iwd-souls-moor/maps/fjolarok/zone.js
  21. +0
    -62
      src/server/mods/mod-iwd-souls-moor/mtx/hauntedIceSpear.js
  22. +0
    -8
      src/server/mods/mod-iwd-souls-moor/mtx/summonPumpkinSkeleton.js
  23. +0
    -190
      src/server/mods/mod-iwd-souls-moor/spells/spellScatterPumpkinPieces.js

+ 0
- 1
src/server/mods/mod-iwd-ranger

@@ -1 +0,0 @@
Subproject commit 9ec64b54627ed5185b31832aefbcb7195b8240a9

+ 0
- 9
src/server/mods/mod-iwd-souls-moor/factions/pumpkinSailor.js View File

@@ -1,9 +0,0 @@
module.exports = {
id: 'pumpkinSailor',
name: 'The Pumpkin Sailor',
description: 'The Pumpkin Sailor scours the seas in search of lost souls that were doomed to roam the open waters alone.',

rewards: {

}
};

BIN
View File


BIN
View File


BIN
View File


BIN
View File


BIN
View File


BIN
View File


BIN
View File


BIN
View File


BIN
View File


BIN
View File


BIN
View File


+ 0
- 244
src/server/mods/mod-iwd-souls-moor/index.js View File

@@ -1,244 +0,0 @@
module.exports = {
name: 'Event: Halloween',

mapOffset: {
x: 23,
y: 86
},

extraScripts: [
'maps/fjolarok/events/halloween.js',
'mtx/summonPumpkinSkeleton.js',
'spells/spellScatterPumpkinPieces.js'
],

mapFile: null,
mapW: null,
mapH: null,

init: function () {
this.mapFile = require('./maps/fjolarok/map');
this.mapW = this.mapFile.width;
this.mapH = this.mapFile.height;

this.events.on('onBeforeGetFactions', this.onBeforeGetFactions.bind(this));
this.events.on('onBeforeGetSkins', this.onBeforeGetSkins.bind(this));
this.events.on('onBeforeGetEventList', this.onBeforeGetEventList.bind(this));
//this.events.on('onBeforeGetQuests', this.onBeforeGetQuests.bind(this));
//this.events.on('onBeforeGetDialogue', this.onBeforeGetDialogue.bind(this));
this.events.on('onBeforeGetResourceList', this.onBeforeGetResourceList.bind(this));
//this.events.on('onAfterGetZone', this.onAfterGetZone.bind(this));
//this.events.on('onBeforeBuildLayerTile', this.onBeforeBuildLayerTile.bind(this));
//this.events.on('onAfterGetLayerObjects', this.onAfterGetLayerObjects.bind(this));
this.events.on('onBeforeGetMtxList', this.onBeforeGetMtxList.bind(this));
this.events.on('onBeforeGetAnimations', this.onBeforeGetAnimations.bind(this));
//this.events.on('onBeforeGetHerbConfig', this.onBeforeGetHerbConfig.bind(this));
this.events.on('onBeforeGetSpellsInfo', this.beforeGetSpellsInfo.bind(this));
this.events.on('onBeforeGetSpellsConfig', this.beforeGetSpellsConfig.bind(this));
this.events.on('onBeforeGetSpellTemplate', this.beforeGetSpellTemplate.bind(this));
},

beforeGetSpellsInfo: function (spells) {
spells.push({
name: 'scatter pumpkin pieces',
type: 'scatterPumpkinPieces',
animation: 'melee',
particles: {
color: {
start: ['ff4252', 'b34b3a'],
end: ['b34b3a', 'ff4252']
},
scale: {
start: {
min: 2,
max: 14
},
end: {
min: 0,
max: 8
}
},
lifetime: {
min: 1,
max: 3
},
alpha: {
start: 0.7,
end: 0
},
randomScale: true,
randomColor: true,
chance: 0.6
}
});
},

beforeGetSpellsConfig: function (spells) {
spells['scatter pumpkin pieces'] = {
statType: ['str'],
statMult: 0.1,
auto: true,
cdMax: 7,
manaCost: 0,
random: {

}
};
},

beforeGetSpellTemplate: function (spell) {
if (spell.type === 'ScatterPumpkinPieces')
spell.template = require('./spells/spellScatterPumpkinPieces.js');
},

onBeforeGetFactions: function (mappings) {
extend(mappings, {
pumpkinSailor: './factions/pumpkinSailor'
});
},

onBeforeGetSkins: function (skins) {
skins['3.0'] = {
name: 'Pumpkin-Head Necromancer',
sprite: [0, 0],
spritesheet: `${this.folderName}/images/skins.png`
};
},

onBeforeGetHerbConfig: function (herbs) {
extend(herbs, {
'Tiny Pumpkin': {
sheetName: 'objects',
cell: 167,
itemSprite: [3, 3],
itemName: 'Candy Corn',
itemSheet: `${this.folderName}/images/items.png`,
itemAmount: [1, 1]
},
Pumpkin: {
sheetName: 'objects',
cell: 159,
itemSprite: [3, 3],
itemName: 'Candy Corn',
itemSheet: `${this.folderName}/images/items.png`,
itemAmount: [2, 3]
},
'Giant Pumpkin': {
sheetName: 'objects',
cell: 158,
itemSprite: [3, 3],
itemName: 'Candy Corn',
itemSheet: `${this.folderName}/images/items.png`,
itemAmount: [2, 5]
}
});
},

onBeforeGetAnimations: function (animations) {
//Skeleton animations
let mobsheet = `${this.folderName}/images/mobs.png`;
if (!animations.mobs[mobsheet])
animations.mobs[mobsheet] = {};

animations.mobs[mobsheet]['0'] = {
melee: {
spritesheet: mobsheet,
row: 1,
col: 0,
frames: 2,
frameDelay: 5
},
spawn: {
spritesheet: mobsheet,
row: 2,
col: 0,
frames: 3,
frameDelay: 4,
hideSprite: true,
type: 'attackAnimation'
},
death: {
spritesheet: mobsheet,
row: 3,
col: 0,
frames: 4,
frameDelay: 4,
type: 'attackAnimation'
}
};
},

onBeforeGetResourceList: function (list) {
list.push(`${this.folderName}/images/mobs.png`);
list.push(`${this.folderName}/images/bosses.png`);
list.push(`${this.folderName}/images/skins.png`);
},

onBeforeGetMtxList: function (list) {
list.summonPumpkinSkeleton = this.relativeFolderName + '/mtx/summonPumpkinSkeleton';
list.hauntedIceSpear = this.relativeFolderName + '/mtx/hauntedIceSpear';
},

onAfterGetLayerObjects: function (info) {
if (info.map !== 'fjolarok')
return;

let layer = this.mapFile.layers.find(l => (l.name === info.layer));
if (layer) {
let offset = this.mapOffset;
let mapScale = this.mapFile.tilesets[0].tileheight;

layer.objects.forEach(function (l) {
let newO = extend({}, l);
newO.x += (offset.x * mapScale);
newO.y += (offset.y * mapScale);

info.objects.push(newO);
}, this);
}
},

onBeforeBuildLayerTile: function (info) {
if (info.map !== 'fjolarok')
return;

let offset = this.mapOffset;

let x = info.x;
let y = info.y;

if ((x - offset.x < 0) || (y - offset.y < 0) || (x - offset.x >= this.mapW) || (y - offset.y >= this.mapH))
return;

let i = ((y - offset.y) * this.mapW) + (x - offset.x);
let layer = this.mapFile.layers.find(l => (l.name === info.layer));
if (layer)
info.cell = layer.data[i];
},

onBeforeGetEventList: function (zone, list) {
if (zone !== 'fjolarok')
return;

list.push('../' + this.relativeFolderName + '/maps/fjolarok/events/halloween.js');
list.push('../' + this.relativeFolderName + '/maps/fjolarok/events/halloweenBoss.js');
},

onAfterGetZone: function (zone, config) {
try {
let modZone = require('./maps/' + zone + '/zone.js');
extend(config, modZone);
} catch (e) {

}
},

onBeforeGetDialogue: function (zone, config) {
try {
let modDialogue = require('./maps/' + zone + '/dialogues.js');
extend(config, modDialogue);
} catch (e) {

}
}
};

+ 0
- 106
src/server/mods/mod-iwd-souls-moor/maps/fjolarok/dialogues.js View File

@@ -1,106 +0,0 @@
module.exports = {
'the pumpkin sailor': {
1: {
msg: [{
msg: 'Soul\'s greeting to you.',
options: [1.1, 1.2, 1.3, 1.4]
}],
options: {
1.1: {
msg: 'Who are you?',
goto: '2'
},
1.2: {
msg: 'Have you found anything worth selling?',
goto: 'tradeBuy'
},
1.3: {
msg: 'I have some items you might have use for..',
goto: 'tradeSell'
},
1.4: {
msg: 'I sold you something by accident.',
goto: 'tradeBuyback'
}
}
},
2: {
msg: [{
msg: 'Most call me the Pumpkin Sailor. Some call me the Sailor of Souls. You can call me either.',
options: [2.1]
}],
options: {
2.1: {
msg: 'Souls? What kind of souls?',
goto: '3'
}
}
},
3: {
msg: [{
msg: 'Why, human souls! The sea claims without mercy and once in its cold grasp, few ever escape. I do what I can to gather the few I can track down; store them in these jars here.',
options: [3.1]
}],
options: {
3.1: {
msg: 'Then what?',
goto: '4'
}
}
},
4: {
msg: [{
msg: 'Well, a soul wants to return home; to be at rest. Once ashore, they are free to find their final resting place.',
options: [4.1]
}],
options: {
4.1: {
msg: 'How do they find their way back?',
goto: '5'
}
}
},
5: {
msg: [{
msg: 'Their loved ones put out pumpkins, carved with their family runes. The souls simply look for something familiar. Unfortunately, they are easily fooled too.',
options: [5.1]
}],
options: {
5.1: {
msg: 'Who would fool them?',
goto: '6'
}
}
},
6: {
msg: [{
msg: 'I am not without enemies. There are those who would display forged runes; clever replications meant to lure and trap souls. Lord Squash, is one such. A foul creature; powerful and fearful.',
options: []
}],
options: {

}
},
tradeBuy: {
cpn: 'trade',
method: 'startBuy',
args: [{
targetName: 'the pumpkin sailor'
}]
},
tradeSell: {
cpn: 'trade',
method: 'startSell',
args: [{
targetName: 'the pumpkin sailor'
}]
},
tradeBuyback: {
cpn: 'trade',
method: 'startBuyback',
args: [{
targetName: 'the pumpkin sailor'
}]
}
}
};

+ 0
- 112
src/server/mods/mod-iwd-souls-moor/maps/fjolarok/events/halloween.js View File

@@ -1,112 +0,0 @@
module.exports = {
name: 'Soul\'s Moor',
description: 'The Pumpkin Sailor has returned to the shores of the living.',
distance: -1,
cron: '* * 1-31 9 *',
durationEvent: true,
disabled: false,

events: {

},

helpers: {

},

phases: [{
type: 'hookEvents',
events: {
beforeGatherResource: function (gatherResult, gatherer) {
let itemName = gatherResult.blueprint.itemName;
if ((!itemName) || (itemName.toLowerCase() !== 'candy corn'))
return;

gatherer.reputation.getReputation('pumpkinSailor', 40);

//Spawn a Nibbler?
let roll = Math.random();
if (roll < 0.15) {
let obj = gatherResult.obj;
let spellbook = obj.spellbook;
if (!spellbook) {
spellbook = obj.addComponent('spellbook');
spellbook.addSpell('summonSkeleton');
let spell = spellbook.spells[0];
spell.killMinionsOnDeath = false;
spell.hpPercent = 100;
spell.damagePercent = 100;

let level = gatherer.stats.values.level;
let hp = ((level * 15) + level) * 2;
let str = ((level * 14.9) + ((level - 1) * 31.49));
if (level < 10)
str *= [0.1, 0.2, 0.4, 0.7, 1, 1, 1, 1, 1][level - 1];

obj.addComponent('stats', {
values: {
hpMax: hp,
hp: hp,
str: str * 1.2,
level: level
}
});

obj.addComponent('aggro', {
faction: 'lordSquash'
});
}

let pos = obj.instance.physics.getClosestPos(obj.x, obj.y, obj.x, obj.y);
spellbook.spells[0].cast({
target: {
x: pos.x,
y: pos.y
}
});
let summoned = spellbook.spells[0].minions[0];
summoned.name = 'Soul Nibbler';
summoned.aggro.list.push({
obj: gatherer,
threat: 1
});

summoned.sheetName = 'server/mods/event-halloween/images/mobs.png';
summoned.cell = 0;

summoned.inventory.blueprint = {
noRandom: true,
rolls: 2,
chance: 100,
blueprints: [{
chance: 3,
name: 'Summon Pumpkin Skeleton',
type: 'mtx',
effects: [{
mtx: 'summonPumpkinSkeleton'
}],
spritesheet: 'server/mods/event-halloween/images/items.png',
sprite: [3, 0],
noSpell: true,
noDrop: true,
noDestroy: true,
noSalvage: true
}, {
chance: 100,
name: 'Candy Corn',
spritesheet: 'server/mods/event-halloween/images/items.png',
material: true,
noSpell: true,
sprite: [3, 3],
quantity: [1, 5]
}]
};
}
},

beforeCompleteAutoquest: function (quest, character) {

}
}
}]
};

+ 0
- 156
src/server/mods/mod-iwd-souls-moor/maps/fjolarok/events/halloweenBoss.js View File

@@ -1,156 +0,0 @@
module.exports = {
name: 'Beware Lord Squash',
description: 'Lord Squash haunts the island. Stop him in the name of the Pumpkin Sailor.',
distance: -1,
cron: '0 */2 1-31 9 *',
disabled: false,

events: {

},

helpers: {

},

phases: [{
type: 'spawnMob',
spawnRect: {
x: 63,
y: 34
},
mobs: [{
name: 'Lord Squash',
level: 10,
attackable: true,
cell: 0,
sheetName: 'server/mods/event-halloween/images/bosses.png',
id: 'lordSquash',
hpMult: 55,
dmgMult: 40,
grantRep: {
pumpkinSailor: 2000
},
pos: {
x: 0,
y: 0
},
drops: {
chance: 100,
rolls: 2,
noRandom: true,
blueprints: [{
chance: 5,
name: 'Haunted Ice Spear',
type: 'mtx',
effects: [{
mtx: 'hauntedIceSpear'
}],
spritesheet: 'server/mods/event-halloween/images/items.png',
sprite: [3, 0],
noSpell: true,
noDrop: true,
noDestroy: true,
noSalvage: true
}, {
chance: 100,
name: 'Candy Corn',
spritesheet: 'server/mods/event-halloween/images/items.png',
material: true,
sprite: [3, 3],
noSpell: true,
quantity: [30, 60]
}]
},
properties: {
cpnBumpAnimation: {
type: 'bumpAnimation',
simplify: function () {
return {
type: 'bumpAnimation',
infinite: true,
deltaX: 0,
deltaY: -1,
updateCdMax: 4
};
}
}
},
chats: {
global: true,
chance: 1,
cdMax: 350,
chats: [{
msg: 'Souls! Souls! Delicious Souls!'
}, {
msg: '*Gobble Gobble Gobble*'
}, {
msg: 'Come, Sailor. I will be your match!'
}]
},
spells: [{
type: 'scatterPumpkinPieces'
}, {
type: 'projectile',
row: 3,
col: 4,
shootAll: true,
particles: {
color: {
start: ['51fc9a', '48edff'],
end: ['48edff', '51fc9a']
},
scale: {
start: {
min: 2,
max: 12
},
end: {
min: 0,
max: 6
}
},
lifetime: {
min: 2,
max: 4
},
alpha: {
start: 0.7,
end: 0
},
speed: {
start: {
min: 4,
max: 24
},
end: {
min: 0,
max: 12
}
},
startRotation: {
min: 0,
max: 360
},
rotationSpeed: {
min: 0,
max: 360
},
randomScale: true,
randomColor: true,
randomSpeed: true,
chance: 0.55,
spawnType: 'circle',
spawnCircle: {
x: 0,
y: 0,
r: 8
}
}
}]
}]
}, {
type: 'killMob',
mobs: ['lordSquash']
}]
};

+ 0
- 523
src/server/mods/mod-iwd-souls-moor/maps/fjolarok/map.json View File

@@ -1,523 +0,0 @@
{ "backgroundcolor":"#32222e",
"height":34,
"layers":[
{
"data":[384, 384, 384, 384, 384, 384, 377, 377, 377, 377, 377, 384, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 390, 384, 384, 377, 384, 384, 384, 377, 377, 377, 384, 377, 377, 377, 377, 377, 377, 384, 384, 384, 384, 384, 384, 377, 377, 377, 390, 384, 384, 384, 384, 384, 384, 384, 377, 377, 377, 377, 377, 377, 384, 384, 384, 384, 384, 377, 384, 384, 384, 384, 384, 384, 390, 390, 384, 384, 377, 517, 517, 384, 384, 517, 517, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 390, 390, 390, 384, 384, 517, 517, 517, 517, 384, 517, 517, 384, 384, 384, 384, 384, 384, 384, 384, 377, 384, 384, 377, 384, 384, 390, 390, 390, 384, 377, 517, 384, 517, 517, 517, 384, 517, 384, 384, 377, 377, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 342, 390, 390, 390, 384, 384, 384, 384, 517, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 342, 342, 390, 390, 390, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 390, 390, 390, 390, 390, 390, 390, 390, 384, 342, 342, 342, 342, 390, 390, 390, 384, 384, 384, 384, 384, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 342, 342, 342, 342, 342, 390, 390, 390, 173, 384, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 342, 342, 342, 342, 342, 342, 342, 342, 173, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 342, 342, 390, 342, 342, 526, 526, 526, 173, 526, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 342, 342, 342, 342, 342, 342, 509, 509, 509, 526, 342, 390, 342, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 342, 342, 342, 342, 342, 509, 509, 509, 509, 509, 526, 526, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 342, 342, 342, 526, 509, 509, 509, 517, 509, 509, 509, 526, 342, 342, 390, 342, 390, 390, 342, 390, 390, 390, 390, 390, 342, 390, 342, 342, 342, 526, 509, 509, 517, 517, 517, 509, 509, 406, 526, 342, 342, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 342, 342, 526, 526, 509, 509, 509, 517, 406, 517, 509, 508, 516, 526, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 509, 509, 509, 517, 509, 508, 516, 491, 491, 526, 526, 342, 390, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 509, 509, 509, 508, 516, 491, 491, 491, 408, 526, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 406, 508, 516, 491, 491, 491, 491, 491, 491, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 516, 491, 491, 491, 491, 491, 491, 491, 408, 526, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 491, 491, 491, 491, 408, 491, 491, 491, 491, 526, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 408, 491, 491, 491, 491, 491, 491, 508, 516, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 491, 491, 491, 491, 491, 508, 516, 509, 509, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 408, 491, 491, 508, 516, 509, 509, 406, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 491, 508, 516, 509, 408, 509, 509, 509, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 516, 509, 509, 509, 339, 509, 509, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 509, 406, 509, 509, 406, 509, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 342, 526, 526, 509, 509, 509, 509, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 526, 526, 526, 526, 526, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 526, 526, 342, 342, 0, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 0, 0, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 0, 0, 0, 0, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 0, 0, 0, 0, 0, 0],
"height":34,
"name":"tiles",
"opacity":0.550000011920929,
"type":"tilelayer",
"visible":true,
"width":26,
"x":0,
"y":0
},
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, 683, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"height":34,
"name":"doodads",
"opacity":1,
"type":"tilelayer",
"visible":true,
"width":26,
"x":0,
"y":0
},
{
"data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 79, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 79, 80, 0, 80, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 208, 208, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 587, 0, 0, 0, 0, 205, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 408, 75, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 0, 0, 76, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 671, 205, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 671, 205, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 206, 548, 0, 0, 0, 77, 0, 0, 0, 559, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 670, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 206, 670, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, 0, 0, 0, 77, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 206, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 207, 207, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"height":34,
"name":"walls",
"opacity":1,
"properties":
{
"tileset":"walls"
},
"propertytypes":
{
"tileset":"string"
},
"type":"tilelayer",
"visible":true,
"width":26,
"x":0,
"y":0
},
{
"draworder":"topdown",
"name":"mobs",
"objects":[
{
"gid":788,
"height":24,
"id":663,
"name":"the pumpkin sailor",
"rotation":0,
"type":"",
"visible":true,
"width":24,
"x":56,
"y":40
}],
"opacity":1,
"properties":
{
"faction":"2",
"tileset":"mobs"
},
"propertytypes":
{
"faction":"string",
"tileset":"string"
},
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
{
"draworder":"topdown",
"name":"objects",
"objects":[
{
"gid":712,
"height":24,
"id":660,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":24,
"x":56,
"y":144
},
{
"gid":711,
"height":24,
"id":661,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":24,
"x":152,
"y":240
},
{
"gid":665,
"height":8,
"id":668,
"name":"|greencandle",
"properties":
{
"cpnAggro":"{ \"faction\": 1}"
},
"propertytypes":
{
"cpnAggro":"string"
},
"rotation":0,
"type":"",
"visible":true,
"width":8,
"x":40,
"y":40
},
{
"gid":665,
"height":8,
"id":670,
"name":"|greencandle",
"properties":
{
"cpnAggro":"{ \"faction\": 1}"
},
"propertytypes":
{
"cpnAggro":"string"
},
"rotation":0,
"type":"",
"visible":true,
"width":8,
"x":152,
"y":200
},
{
"gid":665,
"height":8,
"id":671,
"name":"|greencandle",
"properties":
{
"cpnAggro":"{ \"faction\": 1}"
},
"propertytypes":
{
"cpnAggro":"string"
},
"rotation":0,
"type":"",
"visible":true,
"width":8,
"x":128,
"y":224
},
{
"gid":665,
"height":8,
"id":674,
"name":"|greencandle",
"properties":
{
"cpnAggro":"{ \"faction\": 1}"
},
"propertytypes":
{
"cpnAggro":"string"
},
"rotation":0,
"type":"",
"visible":true,
"width":8,
"x":56,
"y":160
},
{
"gid":665,
"height":8,
"id":675,
"name":"|greencandle",
"properties":
{
"cpnAggro":"{ \"faction\": 1}"
},
"propertytypes":
{
"cpnAggro":"string"
},
"rotation":0,
"type":"",
"visible":true,
"width":8,
"x":88,
"y":128
}],
"opacity":1,
"properties":
{
"blocking":"1",
"tileset":"objects"
},
"propertytypes":
{
"blocking":"string",
"tileset":"string"
},
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
{
"draworder":"topdown",
"name":"clientObjects",
"objects":[],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
{
"draworder":"topdown",
"name":"notices",
"objects":[
{
"height":24,
"id":666,
"name":"shopCaptain",
"rotation":0,
"type":"",
"visible":true,
"width":24,
"x":56,
"y":24
},
{
"height":24,
"id":667,
"name":"shopCaptain",
"rotation":0,
"type":"",
"visible":true,
"width":24,
"x":56,
"y":24
}],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
},
{
"draworder":"topdown",
"name":"rooms",
"objects":[],
"opacity":1,
"type":"objectgroup",
"visible":true,
"x":0,
"y":0
}],
"nextobjectid":676,
"orientation":"orthogonal",
"properties":
{
"instanced":"0",
"name":"Test Zone",
"spawn":"[{\"maxLevel\":1,\"x\":60,\"y\":116},{\"maxLevel\":999,\"x\":89,\"y\":48}]"
},
"propertytypes":
{
"instanced":"string",
"name":"string",
"spawn":"string"
},
"renderorder":"right-down",
"tileheight":8,
"tilesets":[
{
"columns":8,
"firstgid":1,
"image":"..\/..\/..\/..\/..\/client\/images\/walls.png",
"imageheight":256,
"imagewidth":64,
"margin":0,
"name":"walls",
"spacing":0,
"tilecount":256,
"tileheight":8,
"tiles":
{
"0":
{
"probability":0.200000002980232
},
"2":
{
"probability":0.600000023841858
},
"29":
{
"probability":0.800000011920929
},
"3":
{
"probability":0.200000002980232
},
"30":
{
"probability":0.200000002980232
},
"31":
{
"probability":0.200000002980232
},
"4":
{
"probability":0.200000002980232
},
"50":
{
"probability":0.400000005960464
},
"8":
{
"probability":0.100000001490116
}
},
"tilewidth":8
},
{
"columns":8,
"firstgid":257,
"image":"..\/..\/..\/..\/..\/client\/images\/mobs.png",
"imageheight":80,
"imagewidth":64,
"margin":0,
"name":"mobs",
"spacing":0,
"tilecount":80,
"tileheight":8,
"tileproperties":
{
"19":
{
"portal":"midgaard-inn-room_2,1"
}
},
"tilepropertytypes":
{
"19":
{
"portal":"string"
}
},
"tilewidth":8
},
{
"columns":8,
"firstgid":337,
"image":"..\/..\/..\/..\/..\/client\/images\/tiles.png",
"imageheight":192,
"imagewidth":64,
"margin":0,
"name":"tiles",
"spacing":0,
"tilecount":192,
"tileheight":8,
"tiles":
{
"0":
{
"probability":2
},
"11":
{
"probability":4
},
"14":
{
"probability":0.5
},
"2":
{
"probability":4
},
"23":
{
"probability":0.200000002980232
},
"24":
{
"probability":0.200000002980232
},
"29":
{
"probability":0.5
},
"3":
{
"probability":7
},
"30":
{
"probability":0.200000002980232
},
"31":
{
"probability":10
},
"38":
{
"probability":3
},
"39":
{
"probability":3
},
"40":
{
"probability":15
},
"41":
{
"probability":2
},
"42":
{
"probability":26
},
"47":
{
"probability":10
},
"5":
{
"probability":0.00999999977648258
},
"54":
{
"probability":0.5
},
"6":
{
"probability":0.00499999988824129
},
"7":
{
"probability":0.100000001490116
},
"8":
{
"probability":0.5
},
"9":
{
"probability":4
}
},
"tilewidth":8
},
{
"columns":8,
"firstgid":529,
"image":"..\/..\/..\/..\/..\/client\/images\/objects.png",
"imageheight":176,
"imagewidth":64,
"margin":0,
"name":"objects",
"spacing":0,
"tilecount":176,
"tileheight":8,
"tiles":
{
"42":
{
"probability":5
}
},
"tilewidth":8
},
{
"columns":8,
"firstgid":705,
"image":"..\/..\/..\/..\/..\/client\/images\/bigObjects.png",
"imageheight":240,
"imagewidth":192,
"margin":0,
"name":"bigObjects",
"spacing":0,
"tilecount":80,
"tileheight":24,
"tilewidth":24
},
{
"columns":8,
"firstgid":785,
"image":"..\/..\/..\/..\/..\/client\/images\/bosses.png",
"imageheight":240,
"imagewidth":192,
"margin":0,
"name":"bosses",
"spacing":0,
"tilecount":80,
"tileheight":24,
"tilewidth":24
}],
"tilewidth":8,
"type":"map",
"version":"2017.05.26",
"width":26
}

+ 0
- 3
src/server/mods/mod-iwd-souls-moor/maps/fjolarok/quests.js View File

@@ -1,3 +0,0 @@
module.exports = {
infini: []
};

+ 0
- 202
src/server/mods/mod-iwd-souls-moor/maps/fjolarok/zone.js View File

@@ -1,202 +0,0 @@
module.exports = {
resources: {
'Tiny Pumpkin': {
type: 'herb',
max: 4
},
Pumpkin: {
type: 'herb',
max: 2
},
'Giant Pumpkin': {
type: 'herb',
max: 1
}
},
mobs: {
'the pumpkin sailor': {
level: 25,
walkDistance: 0,
attackable: false,
regular: {
drops: {
chance: 75,
rolls: 1
}
},
rare: {
count: 0
},

properties: {
cpnTrade: {
items: {
min: 0,
max: 0
},
forceItems: [{
type: 'skin',
id: '3.0',
infinite: true,
worth: {
currency: 'Candy Corn',
amount: 1200
},
factions: [{
id: 'pumpkinSailor',
tier: 6
}]
}, {
name: 'Signet of Witching',
spritesheet: 'server/mods/event-halloween/images/items.png',
sprite: [0, 0],
slot: 'finger',
type: 'Ring',
level: 10,
quality: 3,
worth: {
currency: 'Candy Corn',
amount: 400
},
stats: {
int: 50,
regenMana: 8
},
factions: [{
id: 'pumpkinSailor',
tier: 5
}],
infinite: true,
noSalvage: true,
noDrop: true,
noDestroy: true
}, {
name: 'Banshee\'s Will',
spritesheet: 'server/mods/event-halloween/images/items.png',
sprite: [0, 0],
slot: 'finger',
type: 'Ring',
level: 10,
quality: 3,
worth: {
currency: 'Candy Corn',
amount: 400
},
stats: {
str: 25,
int: 25,
regenHp: 10
},
factions: [{
id: 'pumpkinSailor',
tier: 5
}],
infinite: true,
noSalvage: true,
noDrop: true,
noDestroy: true
}, {
name: 'Black Cat\'s Grace',
spritesheet: 'server/mods/event-halloween/images/items.png',
sprite: [0, 0],
slot: 'finger',
type: 'Ring',
level: 10,
quality: 3,
worth: {
currency: 'Candy Corn',
amount: 400
},
stats: {
dex: 50,
addCritChance: 90
},
factions: [{
id: 'pumpkinSailor',
tier: 5
}],
infinite: true,
noSalvage: true,
noDrop: true,
noDestroy: true
}, {
name: 'Dead Man\'s Band',
spritesheet: 'server/mods/event-halloween/images/items.png',
sprite: [0, 0],
slot: 'finger',
type: 'Ring',
level: 10,
quality: 3,
worth: {
currency: 'Candy Corn',
amount: 400
},
stats: {
str: 50,
armor: 350
},
factions: [{
id: 'pumpkinSailor',
tier: 5
}],
infinite: true,
noSalvage: true,
noDrop: true,
noDestroy: true

}],
level: {
min: 1,
max: 5
},
markup: {
buy: 0.25,
sell: 2.5
}
}
}
}
},
objects: {
shopcaptain: {
properties: {
cpnNotice: {
actions: {
enter: {
cpn: 'dialogue',
method: 'talk',
args: [{
targetName: 'the pumpkin sailor'
}]
},
exit: {
cpn: 'dialogue',
method: 'stopTalk'
}
}
}
}
},
greencandle: {
components: {
cpnLight: {
simplify: function () {
return {
type: 'light',
blueprint: {
color: {
start: ['80f643'],
end: ['4ac441', '51fc9a', 'd07840']
},
lifetime: {
min: 2,
max: 6
}
}
};
}
}
}
}
}
};

+ 0
- 62
src/server/mods/mod-iwd-souls-moor/mtx/hauntedIceSpear.js View File

@@ -1,62 +0,0 @@
module.exports = {
events: {
beforeSpawnProjectile: function (item, spell, projectileConfig) {
if (spell.name.toLowerCase() !== 'ice spear')
return;

let cpnProjectile = projectileConfig.components.find(c => (c.type === 'projectile'));
cpnProjectile.particles = {
color: {
start: ['51fc9a', '48edff'],
end: ['48edff', '51fc9a']
},
scale: {
start: {
min: 2,
max: 12
},
end: {
min: 0,
max: 6
}
},
lifetime: {
min: 2,
max: 4
},
alpha: {
start: 0.7,
end: 0
},
speed: {
start: {
min: 4,
max: 24
},
end: {
min: 0,
max: 12
}
},
startRotation: {
min: 0,
max: 360
},
rotationSpeed: {
min: 0,
max: 360
},
randomScale: true,
randomColor: true,
randomSpeed: true,
chance: 0.55,
spawnType: 'circle',
spawnCircle: {
x: 0,
y: 0,
r: 8
}
};
}
}
};

+ 0
- 8
src/server/mods/mod-iwd-souls-moor/mtx/summonPumpkinSkeleton.js View File

@@ -1,8 +0,0 @@
module.exports = {
events: {
beforeSummonMinion: function (item, minion) {
minion.sheetName = 'server/mods/event-halloween/images/mobs.png';
minion.cell = 0;
}
}
};

+ 0
- 190
src/server/mods/mod-iwd-souls-moor/spells/spellScatterPumpkinPieces.js View File

@@ -1,190 +0,0 @@
let cpnPumpkinChunk = {
type: 'pumpkinChunk',

caster: null,
isRotten: false,

ttl: 250,

update: function () {
this.ttl--;

if (this.ttl === 0)
this.obj.destroyed = true;
},

collisionEnter: function (o) {
if (!o.player)
return;

this.obj.destroyed = true;

if (this.isRotten) {
let drainCounts = this.caster.spellbook.spells.find(s => (s.type === 'scatterPumpkinPieces')).drainCounts;
if (drainCounts[o.name])
drainCounts[o.name] += 2;
else
drainCounts[o.name] = 1;

o.effects.addEffect({
type: 'lifeDrain',
ttl: 10,
amount: drainCounts[o.name],
caster: this.caster
});
} else {
o.effects.addEffect({
type: 'frenzy',
ttl: 40,
newCd: 2
});
}
}
};
module.exports = {
type: 'scatterPumpkinPieces',

cdMax: 20,
manaCost: 0,

spread: 5,
range: 10,
speed: 250,

drainCounts: {},

cast: function (action) {
return this.shootChunk(action);
},

shootChunk: function (action) {
let obj = this.obj;

let physics = obj.instance.physics;

let spread = this.spread;
let toX = obj.x + ~~(Math.random() * spread * 2) - spread;
let toY = obj.y + ~~(Math.random() * spread * 2) - spread;
let target = physics.getClosestPos(
obj.x,
obj.y,
toX,
toY
);

if (!target)
return false;

let ttl = (Math.sqrt(Math.pow(target.x - obj.x, 2) + Math.pow(target.y - obj.y, 2)) * this.speed) - 50;

let isRotten = (Math.random() < 0.3);
let particles = null;
if (!isRotten) {
particles = {
color: {
start: ['ffeb38', 'db5538'],
end: ['d43346', '763b3b']
},
scale: {
start: {
min: 4,
max: 8
},
end: {
min: 0,
max: 4
}
},
lifetime: {
min: 2,
max: 4
},
alpha: {
start: 0.7,
end: 0
},
randomScale: true,
randomColor: true,
chance: 0.6
};
} else {
particles = {
color: {
start: ['fc66f7', 'a24eff'],
end: ['533399', '393268']
},
scale: {
start: {
min: 4,
max: 8
},
end: {
min: 0,
max: 4
}
},
lifetime: {
min: 2,
max: 4
},
alpha: {
start: 0.7,
end: 0
},
randomScale: true,
randomColor: true,
chance: 0.6
};
}

let projectileConfig = {
caster: this.obj.id,
components: [{
idSource: this.obj.id,
target: target,
type: 'projectile',
ttl: ttl,
projectileOffset: null,
particles: particles
}]
};

this.sendAnimation(projectileConfig);

this.queueCallback(this.createChunk.bind(this, isRotten, target, particles), ttl, null, target);

return true;
},

createChunk: function (isRotten, pos, particles) {
let cell = isRotten ? 73 : 72;

particles.chance = 0.1;

this.obj.instance.objects.buildObjects([{
sheetName: `${this.folderName}/images/mobs.png`,
cell: cell,
x: pos.x,
y: pos.y,
properties: {
cpnPumpkinChunk: cpnPumpkinChunk,
cpnParticles: {
simplify: function () {
return {
type: 'particles',
blueprint: this.blueprint
};
},
blueprint: particles
}
},
extraProperties: {
pumpkinChunk: {
caster: this.obj,
isRotten: isRotten
}
}
}]);
}
};

Loading…
Cancel
Save