You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

146 lines
3.1 KiB

  1. let dropsConfig = {
  2. //mtx
  3. summonPumpkinSkeleton: {
  4. name: 'Summon Pumpkin Skeleton',
  5. type: 'mtx',
  6. effects: [{
  7. mtx: 'summonPumpkinSkeleton'
  8. }],
  9. spritesheet: 'FOLDERNAME/images/items.png',
  10. sprite: [3, 0],
  11. noDrop: true,
  12. noDestroy: true,
  13. noSalvage: true
  14. },
  15. hauntedIceSpear: {
  16. name: 'Haunted Ice Spear',
  17. type: 'mtx',
  18. effects: [{
  19. mtx: 'hauntedIceSpear'
  20. }],
  21. spritesheet: 'FOLDERNAME/images/items.png',
  22. sprite: [3, 0],
  23. noDrop: true,
  24. noDestroy: true,
  25. noSalvage: true
  26. }
  27. };
  28. let gatherDrops = {
  29. summonPumpkinSkeleton: 0.001,
  30. hauntedIceSpear: 0.001
  31. };
  32. module.exports = {
  33. name: 'Soul\'s Moor',
  34. description: 'The Pumpkin Sailor has returned to the shores of the living.',
  35. distance: -1,
  36. cron: '0 0 2-31 10 *',
  37. disabled: true,
  38. events: {
  39. },
  40. helpers: {
  41. },
  42. phases: [{
  43. type: 'hookEvents',
  44. events: {
  45. beforeGatherResource: function (gatherResult, gatherer) {
  46. let itemName = gatherResult.blueprint.itemName;
  47. if ((!itemName) || (itemName.toLowerCase() !== 'candy corn'))
  48. return;
  49. gatherer.reputation.getReputation('pumpkinSailor', 40);
  50. //Spawn a Nibbler?
  51. let roll = Math.random();
  52. if (roll < 0.15) {
  53. let obj = gatherResult.obj;
  54. let spellbook = obj.spellbook;
  55. if (!spellbook) {
  56. spellbook = obj.addComponent('spellbook');
  57. spellbook.addSpell('summonSkeleton');
  58. let spell = spellbook.spells[0];
  59. spell.killMinionsOnDeath = false;
  60. spell.hpPercent = 100;
  61. spell.damagePercent = 100;
  62. let level = gatherer.stats.values.level;
  63. let hp = ((level * 15) + level) * 2;
  64. let str = ((level * 14.9) + ((level - 1) * 31.49));
  65. if (level < 10)
  66. str *= [0.1, 0.2, 0.4, 0.7, 1, 1, 1, 1, 1][level - 1];
  67. obj.addComponent('stats', {
  68. values: {
  69. hpMax: hp,
  70. hp: hp,
  71. str: str * 1.2,
  72. level: level
  73. }
  74. });
  75. obj.addComponent('aggro', {
  76. faction: 'lordSquash'
  77. });
  78. }
  79. let pos = obj.instance.physics.getClosestPos(obj.x, obj.y, obj.x, obj.y);
  80. spellbook.spells[0].cast({
  81. target: {
  82. x: pos.x,
  83. y: pos.y
  84. }
  85. });
  86. let summoned = spellbook.spells[0].minions[0];
  87. summoned.name = 'Soul Nibbler';
  88. summoned.aggro.list.push({
  89. obj: gatherer,
  90. threat: 1
  91. });
  92. summoned.sheetName = 'server/mods/event-halloween/images/mobs.png';
  93. summoned.cell = 0;
  94. summoned.inventory.blueprint = {
  95. noRandom: true,
  96. rolls: 2,
  97. chance: 100,
  98. blueprints: [{
  99. chance: 3,
  100. name: 'Summon Pumpkin Skeleton',
  101. type: 'mtx',
  102. effects: [{
  103. mtx: 'summonPumpkinSkeleton'
  104. }],
  105. spritesheet: 'server/mods/event-halloween/images/items.png',
  106. sprite: [3, 0],
  107. noSpell: true,
  108. noDrop: true,
  109. noDestroy: true,
  110. noSalvage: true
  111. }, {
  112. chance: 100,
  113. name: 'Candy Corn',
  114. spritesheet: 'server/mods/event-halloween/images/items.png',
  115. material: true,
  116. noSpell: true,
  117. sprite: [3, 3],
  118. quantity: [1, 5]
  119. }]
  120. };
  121. }
  122. },
  123. beforeCompleteAutoquest: function (quest, character) {
  124. }
  125. }
  126. }]
  127. };