@opfr/raids 0.16.10 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/assets/mysterious_island/end_cave_blind_walk.webp +0 -0
  2. package/assets/mysterious_island/end_explore_gallery_with_torch.webp +0 -0
  3. package/assets/mysterious_island/end_indications_secret_room.webp +0 -0
  4. package/assets/mysterious_island/end_open_tomb.webp +0 -0
  5. package/assets/mysterious_island/ev_ancient_dark_passage.webp +0 -0
  6. package/assets/mysterious_island/ev_cave_torch_on.webp +0 -0
  7. package/assets/mysterious_island/ev_dark_cave.webp +0 -0
  8. package/assets/mysterious_island/ev_decipher_failure.webp +0 -0
  9. package/assets/mysterious_island/ev_decipher_success.webp +0 -0
  10. package/assets/mysterious_island/ev_dodge_animals.webp +0 -0
  11. package/assets/mysterious_island/ev_enter_jungle.webp +0 -0
  12. package/assets/mysterious_island/ev_explore_gallery_no_torch.webp +0 -0
  13. package/assets/mysterious_island/ev_find_tomb.webp +0 -0
  14. package/assets/mysterious_island/ev_main_path.webp +0 -0
  15. package/assets/mysterious_island/ev_ramp_success.webp +0 -0
  16. package/assets/mysterious_island/ev_search_way.webp +0 -0
  17. package/assets/mysterious_island/ev_start.webp +0 -0
  18. package/assets/mysterious_island/ev_walk_passage.webp +0 -0
  19. package/assets/mysterious_island/ev_walk_ruin.webp +0 -0
  20. package/assets/mysterious_island/ev_wild_animals.webp +0 -0
  21. package/assets/pirate_cave/end_explore_room.webp +0 -0
  22. package/assets/pirate_cave/end_open_chest.webp +0 -0
  23. package/assets/pirate_cave/ev_cave_begin.webp +0 -0
  24. package/assets/pirate_cave/ev_cave_entry.webp +0 -0
  25. package/assets/pirate_cave/ev_ghost_trap.webp +0 -0
  26. package/assets/pirate_cave/ev_left_path.webp +0 -0
  27. package/assets/pirate_cave/ev_right_path.webp +0 -0
  28. package/assets/pirate_cave/ev_secret_passage.webp +0 -0
  29. package/assets/pirate_cave/ev_sneak_walk_failure.webp +0 -0
  30. package/assets/pirate_cave/ev_sneak_walk_success.webp +0 -0
  31. package/assets/pirate_cave/ev_start.webp +0 -0
  32. package/assets/pirate_cave/ev_torch_on.webp +0 -0
  33. package/assets/resources/ev_enter_beach.webp +0 -0
  34. package/assets/resources/ev_enter_forest.webp +0 -0
  35. package/assets/resources/ev_enter_plains.webp +0 -0
  36. package/assets/resources/ev_goto_mine.webp +0 -0
  37. package/assets/resources/ev_hemp.webp +0 -0
  38. package/assets/resources/ev_salt_water.webp +0 -0
  39. package/assets/resources/ev_search_cereal.webp +0 -0
  40. package/assets/resources/ev_search_cotton.webp +0 -0
  41. package/assets/resources/ev_search_wood.webp +0 -0
  42. package/assets/resources/ev_start.webp +0 -0
  43. package/assets/training/end_captain_suite.webp +0 -0
  44. package/assets/training/end_fruits.webp +0 -0
  45. package/assets/training/end_plants.webp +0 -0
  46. package/assets/training/end_ship_hold.webp +0 -0
  47. package/assets/training/ev_agility50_failure.webp +0 -0
  48. package/assets/training/ev_agility50_success.webp +0 -0
  49. package/assets/training/ev_begin_forest.webp +0 -0
  50. package/assets/training/ev_dense_jungle.webp +0 -0
  51. package/assets/training/ev_hard_path.webp +0 -0
  52. package/assets/training/ev_start.webp +0 -0
  53. package/assets/training/ev_swamp.webp +0 -0
  54. package/dist/events/callbacks.d.ts +5 -0
  55. package/dist/events/callbacks.d.ts.map +1 -0
  56. package/dist/events/callbacks.js +38 -0
  57. package/dist/events/callbacks.js.map +1 -0
  58. package/dist/events/event.d.ts +7 -0
  59. package/dist/events/event.d.ts.map +1 -0
  60. package/dist/events/event.js +14 -0
  61. package/dist/events/event.js.map +1 -0
  62. package/dist/events/index.d.ts +2 -0
  63. package/dist/events/index.d.ts.map +1 -0
  64. package/dist/events/index.js +9 -0
  65. package/dist/events/index.js.map +1 -0
  66. package/dist/index.d.ts +1 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.es.js +892 -851
  69. package/dist/index.js +1 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/index.umd.js +8 -8
  72. package/dist/raids/mysteriousIsland.d.ts +2 -3
  73. package/dist/raids/mysteriousIsland.d.ts.map +1 -1
  74. package/dist/raids/mysteriousIsland.js +221 -125
  75. package/dist/raids/mysteriousIsland.js.map +1 -1
  76. package/dist/raids/pirateCave.d.ts +2 -3
  77. package/dist/raids/pirateCave.d.ts.map +1 -1
  78. package/dist/raids/pirateCave.js +162 -96
  79. package/dist/raids/pirateCave.js.map +1 -1
  80. package/dist/raids/resources.d.ts +2 -3
  81. package/dist/raids/resources.d.ts.map +1 -1
  82. package/dist/raids/resources.js +159 -86
  83. package/dist/raids/resources.js.map +1 -1
  84. package/dist/raids/training.d.ts +2 -3
  85. package/dist/raids/training.d.ts.map +1 -1
  86. package/dist/raids/training.js +96 -49
  87. package/dist/raids/training.js.map +1 -1
  88. package/dist/utils.d.ts +4 -5
  89. package/dist/utils.d.ts.map +1 -1
  90. package/dist/utils.js +39 -40
  91. package/dist/utils.js.map +1 -1
  92. package/locales/fr.json +0 -711
  93. package/package.json +17 -15
  94. package/dist/characteristics.d.ts +0 -6
  95. package/dist/characteristics.d.ts.map +0 -1
  96. package/dist/characteristics.js +0 -27
  97. package/dist/characteristics.js.map +0 -1
  98. package/dist/types.d.ts +0 -81
  99. package/dist/types.d.ts.map +0 -1
  100. package/dist/types.js +0 -2
  101. package/dist/types.js.map +0 -1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ import { type RAID_MIDDLEWARE_EVENT_NAME, type RaidMiddlewareEventReceiverCallback } from '@opfr/services';
2
+ export declare const userQuestCallback: RaidMiddlewareEventReceiverCallback<typeof RAID_MIDDLEWARE_EVENT_NAME.USER_QUEST>;
3
+ export declare const userInventoryCallback: RaidMiddlewareEventReceiverCallback<typeof RAID_MIDDLEWARE_EVENT_NAME.USER_INVENTORY>;
4
+ export declare const userRaidCallback: RaidMiddlewareEventReceiverCallback<typeof RAID_MIDDLEWARE_EVENT_NAME.USER_RAID>;
5
+ //# sourceMappingURL=callbacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../../src/events/callbacks.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EAKzC,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,iBAAiB,EAAE,mCAAmC,CACjE,OAAO,0BAA0B,CAAC,UAAU,CAW7C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,mCAAmC,CACrE,OAAO,0BAA0B,CAAC,cAAc,CA0BjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,mCAAmC,CAChE,OAAO,0BAA0B,CAAC,SAAS,CAY5C,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { getCurrentLevel } from '@opfr/definitions';
2
+ import { entityService, userInventoryService, userMetaService, userRaidService, } from '@opfr/services';
3
+ import { filterNullAndUndefined, unique } from '@opfr/utils-lang';
4
+ import { emitRaidEvent } from './event';
5
+ export const userQuestCallback = async (userId) => {
6
+ const userMeta = await userMetaService.get(userId);
7
+ if (getCurrentLevel(userMeta.xp.amount) >= 30 &&
8
+ !(await userRaidService.hasUnlockedRaid(userId, 'training'))) {
9
+ await userRaidService.unlockRaid(userId, 'training');
10
+ emitRaidEvent('raidUnlock', userMeta.user._id, 'training');
11
+ }
12
+ };
13
+ export const userInventoryCallback = async (userId, { equipmentList, itemList }) => {
14
+ const entityIdList = unique(equipmentList, eq => eq.entityId);
15
+ const entities = await Promise.all(entityIdList.map(id => entityService.get(id)));
16
+ const equipments = filterNullAndUndefined(entities).filter(entityService.isEquipment);
17
+ if (equipments.filter(({ panoply }) => panoply === 'adventurer').length === 6 &&
18
+ !(await userRaidService.hasUnlockedRaid(userId, 'pirate_cave'))) {
19
+ await userRaidService.unlockRaid(userId, 'pirate_cave');
20
+ emitRaidEvent('raidUnlock', userId, 'pirate_cave');
21
+ }
22
+ if ((itemList['map_fragment'] ?? 0) >= 5 &&
23
+ !(await userRaidService.hasUnlockedRaid(userId, 'mysterious_island'))) {
24
+ await userRaidService.unlockRaid(userId, 'mysterious_island');
25
+ await userInventoryService.removeItem(userId, 'map_fragment', 5);
26
+ emitRaidEvent('raidUnlock', userId, 'mysterious_island');
27
+ }
28
+ };
29
+ export const userRaidCallback = async (userId, userRaid) => {
30
+ const trainingRewards = userRaid.obtainedRewards['training'];
31
+ if (trainingRewards &&
32
+ trainingRewards.filter(id => id.startsWith('end_')).length >= 4 &&
33
+ !userRaid.unlocked?.['resources']) {
34
+ await userRaidService.unlockRaid(userId, 'resources');
35
+ emitRaidEvent('raidUnlock', userId, 'resources');
36
+ }
37
+ };
38
+ //# sourceMappingURL=callbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../src/events/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAGL,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAE1B,KAAK,EAAC,MAAM,EAAC,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEnD,IACE,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACzC,CAAC,CAAC,MAAM,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAC5D,CAAC;QACD,MAAM,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACrD,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAE9B,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAC9C,CAAC;IACF,MAAM,UAAU,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC,MAAM,CACxD,aAAa,CAAC,WAAW,CAC1B,CAAC;IAEF,IACE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;QACzE,CAAC,CAAC,MAAM,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAC/D,CAAC;QACD,MAAM,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACxD,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,IACE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QACpC,CAAC,CAAC,MAAM,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,EACrE,CAAC;QACD,MAAM,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACjE,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAEzB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAC7B,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAE7D,IACE,eAAe;QACf,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;QAC/D,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EACjC,CAAC;QACD,MAAM,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtD,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ObjectId } from '@opfr/services';
2
+ declare const RAID_EVENT_NAMES: readonly ["raidUnlock"];
3
+ type RaidEventName = (typeof RAID_EVENT_NAMES)[number];
4
+ export declare const emitRaidEvent: (name: RaidEventName, userId: ObjectId, raidId: string) => void;
5
+ export declare const onRaidEvent: (callback: (userId: ObjectId, raidId: string) => void) => void;
6
+ export {};
7
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/events/event.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,QAAA,MAAM,gBAAgB,yBAA0B,CAAC;AAEjD,KAAK,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIvD,eAAO,MAAM,aAAa,GACxB,MAAM,aAAa,EACnB,QAAQ,QAAQ,EAChB,QAAQ,MAAM,SAGf,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,SAOrD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import events from 'events';
2
+ const RAID_EVENT_NAMES = ['raidUnlock'];
3
+ const eventEmitter = new events.EventEmitter();
4
+ export const emitRaidEvent = (name, userId, raidId) => {
5
+ eventEmitter.emit(name, userId, raidId);
6
+ };
7
+ export const onRaidEvent = (callback) => {
8
+ for (const eventName of RAID_EVENT_NAMES) {
9
+ eventEmitter.on(eventName, (userId, raidId) => {
10
+ callback(userId, raidId);
11
+ });
12
+ }
13
+ };
14
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/events/event.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,gBAAgB,GAAG,CAAC,YAAY,CAAU,CAAC;AAIjD,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAmB,EACnB,MAAgB,EAChB,MAAc,EACd,EAAE;IACF,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAoD,EACpD,EAAE;IACF,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './event';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAQA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { registerRaidMiddlewareEvents } from '@opfr/services';
2
+ import { userInventoryCallback, userQuestCallback, userRaidCallback, } from './callbacks';
3
+ export * from './event';
4
+ registerRaidMiddlewareEvents({
5
+ 'middleware/raid/USER_INVENTORY': userInventoryCallback,
6
+ 'middleware/raid/USER_RAID': userRaidCallback,
7
+ 'middleware/raid/USER_QUEST': userQuestCallback,
8
+ });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,cAAc,SAAS,CAAC;AAExB,4BAA4B,CAAC;IAC3B,gCAAgC,EAAE,qBAAqB;IACvD,2BAA2B,EAAE,gBAAgB;IAC7C,4BAA4B,EAAE,iBAAiB;CAChD,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- export type * from './types';
2
- export * from './characteristics';
3
1
  export * from './raids';
4
2
  export * from './utils';
5
3
  export * from './images';
4
+ export * from './events';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,SAAS,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}