@opfr/raids 0.0.1

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 (40) hide show
  1. package/dist/characteristics.d.ts +6 -0
  2. package/dist/characteristics.d.ts.map +1 -0
  3. package/dist/characteristics.js +40 -0
  4. package/dist/characteristics.js.map +1 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.es.js +13785 -0
  8. package/dist/index.js +4 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/index.umd.js +36 -0
  11. package/dist/raids/index.d.ts +5 -0
  12. package/dist/raids/index.d.ts.map +1 -0
  13. package/dist/raids/index.js +5 -0
  14. package/dist/raids/index.js.map +1 -0
  15. package/dist/raids/mysteriousIsland.d.ts +4 -0
  16. package/dist/raids/mysteriousIsland.d.ts.map +1 -0
  17. package/dist/raids/mysteriousIsland.js +1040 -0
  18. package/dist/raids/mysteriousIsland.js.map +1 -0
  19. package/dist/raids/pirateCave.d.ts +4 -0
  20. package/dist/raids/pirateCave.d.ts.map +1 -0
  21. package/dist/raids/pirateCave.js +1032 -0
  22. package/dist/raids/pirateCave.js.map +1 -0
  23. package/dist/raids/resources.d.ts +4 -0
  24. package/dist/raids/resources.d.ts.map +1 -0
  25. package/dist/raids/resources.js +464 -0
  26. package/dist/raids/resources.js.map +1 -0
  27. package/dist/raids/training.d.ts +4 -0
  28. package/dist/raids/training.d.ts.map +1 -0
  29. package/dist/raids/training.js +269 -0
  30. package/dist/raids/training.js.map +1 -0
  31. package/dist/types.d.ts +60 -0
  32. package/dist/types.d.ts.map +1 -0
  33. package/dist/types.js +2 -0
  34. package/dist/types.js.map +1 -0
  35. package/dist/utils.d.ts +13 -0
  36. package/dist/utils.d.ts.map +1 -0
  37. package/dist/utils.js +90 -0
  38. package/dist/utils.js.map +1 -0
  39. package/locales/fr.json +696 -0
  40. package/package.json +40 -0
@@ -0,0 +1,269 @@
1
+ import { t } from 'i18next';
2
+ import { formatRewards } from '../utils';
3
+ export const trainingRaid = (itemId) => ({
4
+ id: 'training',
5
+ name: t('raids.training.name'),
6
+ description: t('raids.training.description'),
7
+ isSpecial: false,
8
+ start: {
9
+ id: 'ev_start',
10
+ title: t('raids.training.ev_start.title'),
11
+ text: t('raids.training.ev_start.text'),
12
+ rewards: undefined,
13
+ penalties: undefined,
14
+ outputs: [
15
+ {
16
+ id: 'uc_follow_marin',
17
+ label: t('raids.training.uc_follow_marin.label'),
18
+ output: {
19
+ id: 'ev_dense_jungle',
20
+ title: t('raids.training.ev_dense_jungle.title'),
21
+ text: t('raids.training.ev_dense_jungle.text'),
22
+ rewards: undefined,
23
+ penalties: undefined,
24
+ outputs: [
25
+ {
26
+ id: 'uc_cross_river',
27
+ label: t('raids.training.uc_cross_river.label'),
28
+ output: {
29
+ id: 'c_agility50',
30
+ requirements: itemId === 'sailing_boat' ? { agility: 45 } : { agility: 50 },
31
+ success: {
32
+ id: 'ev_agility50_success',
33
+ title: t('raids.training.ev_agility50_success.title'),
34
+ text: t('raids.training.ev_agility50_success.text', {
35
+ rewards: formatRewards(itemId === 'rudder'
36
+ ? { xp: 82500 }
37
+ : itemId === 'rescue_boat'
38
+ ? { xp: 75000, berry: 0 }
39
+ : { xp: 75000 }, undefined),
40
+ }),
41
+ rewards: itemId === 'rudder'
42
+ ? { xp: 82500 }
43
+ : itemId === 'rescue_boat'
44
+ ? { xp: 75000, berry: 0 }
45
+ : { xp: 75000 },
46
+ penalties: undefined,
47
+ outputs: [
48
+ {
49
+ id: 'uc_continue',
50
+ label: t('raids.training.uc_continue.label'),
51
+ output: {
52
+ id: 'ev_begin_forest',
53
+ title: t('raids.training.ev_begin_forest.title'),
54
+ text: t('raids.training.ev_begin_forest.text'),
55
+ rewards: undefined,
56
+ penalties: undefined,
57
+ outputs: [
58
+ {
59
+ id: 'uc_take_fruit',
60
+ label: t('raids.training.uc_take_fruit.label'),
61
+ output: {
62
+ id: 'end_fruits',
63
+ title: t('raids.training.end_fruits.title'),
64
+ text: t('raids.training.end_fruits.text', {
65
+ rewards: formatRewards(itemId === 'rudder'
66
+ ? { fruit: 4, xp: 0 }
67
+ : itemId === 'rescue_boat'
68
+ ? { fruit: 4, berry: 0 }
69
+ : { fruit: 4 }, undefined),
70
+ }),
71
+ rewards: itemId === 'rudder'
72
+ ? { fruit: 4, xp: 0 }
73
+ : itemId === 'rescue_boat'
74
+ ? { fruit: 4, berry: 0 }
75
+ : { fruit: 4 },
76
+ penalties: undefined,
77
+ },
78
+ },
79
+ {
80
+ id: 'uc_collect_plants',
81
+ label: t('raids.training.uc_collect_plants.label'),
82
+ output: {
83
+ id: 'end_plants',
84
+ title: t('raids.training.end_plants.title'),
85
+ text: t('raids.training.end_plants.text', {
86
+ rewards: formatRewards(itemId === 'rudder'
87
+ ? { clover: 3, hemp: 4, xp: 0 }
88
+ : itemId === 'rescue_boat'
89
+ ? { clover: 3, hemp: 4, berry: 0 }
90
+ : { clover: 3, hemp: 4 }, undefined),
91
+ }),
92
+ rewards: itemId === 'rudder'
93
+ ? { clover: 3, hemp: 4, xp: 0 }
94
+ : itemId === 'rescue_boat'
95
+ ? { clover: 3, hemp: 4, berry: 0 }
96
+ : { clover: 3, hemp: 4 },
97
+ penalties: undefined,
98
+ },
99
+ },
100
+ ],
101
+ },
102
+ },
103
+ ],
104
+ },
105
+ failure: {
106
+ id: 'ev_agility50_failure',
107
+ title: t('raids.training.ev_agility50_failure.title'),
108
+ text: t('raids.training.ev_agility50_failure.text', {
109
+ rewards: formatRewards(itemId === 'rudder'
110
+ ? { xp: 55000 }
111
+ : itemId === 'rescue_boat'
112
+ ? { xp: 50000, berry: 0 }
113
+ : { xp: 50000 }, undefined),
114
+ }),
115
+ rewards: itemId === 'rudder'
116
+ ? { xp: 55000 }
117
+ : itemId === 'rescue_boat'
118
+ ? { xp: 50000, berry: 0 }
119
+ : { xp: 50000 },
120
+ penalties: undefined,
121
+ outputs: [
122
+ {
123
+ id: 'uc_continue',
124
+ label: t('raids.training.uc_continue.label'),
125
+ output: {
126
+ id: 'ev_begin_forest',
127
+ title: t('raids.training.ev_begin_forest.title'),
128
+ text: t('raids.training.ev_begin_forest.text'),
129
+ rewards: undefined,
130
+ penalties: undefined,
131
+ outputs: [
132
+ {
133
+ id: 'uc_take_fruit',
134
+ label: t('raids.training.uc_take_fruit.label'),
135
+ output: {
136
+ id: 'end_fruits',
137
+ title: t('raids.training.end_fruits.title'),
138
+ text: t('raids.training.end_fruits.text', {
139
+ rewards: formatRewards(itemId === 'rudder'
140
+ ? { fruit: 4, xp: 0 }
141
+ : itemId === 'rescue_boat'
142
+ ? { fruit: 4, berry: 0 }
143
+ : { fruit: 4 }, undefined),
144
+ }),
145
+ rewards: itemId === 'rudder'
146
+ ? { fruit: 4, xp: 0 }
147
+ : itemId === 'rescue_boat'
148
+ ? { fruit: 4, berry: 0 }
149
+ : { fruit: 4 },
150
+ penalties: undefined,
151
+ },
152
+ },
153
+ {
154
+ id: 'uc_collect_plants',
155
+ label: t('raids.training.uc_collect_plants.label'),
156
+ output: {
157
+ id: 'end_plants',
158
+ title: t('raids.training.end_plants.title'),
159
+ text: t('raids.training.end_plants.text', {
160
+ rewards: formatRewards(itemId === 'rudder'
161
+ ? { clover: 3, hemp: 4, xp: 0 }
162
+ : itemId === 'rescue_boat'
163
+ ? { clover: 3, hemp: 4, berry: 0 }
164
+ : { clover: 3, hemp: 4 }, undefined),
165
+ }),
166
+ rewards: itemId === 'rudder'
167
+ ? { clover: 3, hemp: 4, xp: 0 }
168
+ : itemId === 'rescue_boat'
169
+ ? { clover: 3, hemp: 4, berry: 0 }
170
+ : { clover: 3, hemp: 4 },
171
+ penalties: undefined,
172
+ },
173
+ },
174
+ ],
175
+ },
176
+ },
177
+ ],
178
+ },
179
+ },
180
+ },
181
+ {
182
+ id: 'uc_rock_path',
183
+ label: t('raids.training.uc_rock_path.label'),
184
+ output: {
185
+ id: 'ev_hard_path',
186
+ title: t('raids.training.ev_hard_path.title'),
187
+ text: t('raids.training.ev_hard_path.text', {
188
+ rewards: formatRewards(itemId === 'rudder'
189
+ ? { xp: 55000 }
190
+ : itemId === 'rescue_boat'
191
+ ? { xp: 50000, berry: 0 }
192
+ : { xp: 50000 }, undefined),
193
+ }),
194
+ rewards: itemId === 'rudder'
195
+ ? { xp: 55000 }
196
+ : itemId === 'rescue_boat'
197
+ ? { xp: 50000, berry: 0 }
198
+ : { xp: 50000 },
199
+ penalties: undefined,
200
+ outputs: [
201
+ {
202
+ id: 'uc_continue',
203
+ label: t('raids.training.uc_continue.label'),
204
+ output: {
205
+ id: 'ev_swamp',
206
+ title: t('raids.training.ev_swamp.title'),
207
+ text: t('raids.training.ev_swamp.text'),
208
+ rewards: undefined,
209
+ penalties: undefined,
210
+ outputs: [
211
+ {
212
+ id: 'uc_rummage_captain_suite',
213
+ label: t('raids.training.uc_rummage_captain_suite.label'),
214
+ output: {
215
+ id: 'end_captain_suite',
216
+ title: t('raids.training.end_captain_suite.title'),
217
+ text: t('raids.training.end_captain_suite.text', {
218
+ rewards: formatRewards(itemId === 'rudder'
219
+ ? { berry: 50000000, strange_gem: 1, xp: 0 }
220
+ : itemId === 'rescue_boat'
221
+ ? { berry: 75000000, strange_gem: 1 }
222
+ : { berry: 50000000, strange_gem: 1 }, undefined),
223
+ }),
224
+ rewards: itemId === 'rudder'
225
+ ? { berry: 50000000, strange_gem: 1, xp: 0 }
226
+ : itemId === 'rescue_boat'
227
+ ? { berry: 75000000, strange_gem: 1 }
228
+ : { berry: 50000000, strange_gem: 1 },
229
+ penalties: undefined,
230
+ },
231
+ },
232
+ {
233
+ id: 'uc_look_hold',
234
+ label: t('raids.training.uc_look_hold.label'),
235
+ output: {
236
+ id: 'end_hold',
237
+ title: t('raids.training.end_hold.title'),
238
+ text: t('raids.training.end_hold.text', {
239
+ rewards: formatRewards(itemId === 'rudder'
240
+ ? { fruit: 2, repair_wood_plank: 4, xp: 0 }
241
+ : itemId === 'rescue_boat'
242
+ ? {
243
+ fruit: 2,
244
+ repair_wood_plank: 4,
245
+ berry: 0,
246
+ }
247
+ : { fruit: 2, repair_wood_plank: 4 }, undefined),
248
+ }),
249
+ rewards: itemId === 'rudder'
250
+ ? { fruit: 2, repair_wood_plank: 4, xp: 0 }
251
+ : itemId === 'rescue_boat'
252
+ ? { fruit: 2, repair_wood_plank: 4, berry: 0 }
253
+ : { fruit: 2, repair_wood_plank: 4 },
254
+ penalties: undefined,
255
+ },
256
+ },
257
+ ],
258
+ },
259
+ },
260
+ ],
261
+ },
262
+ },
263
+ ],
264
+ },
265
+ },
266
+ ],
267
+ },
268
+ });
269
+ //# sourceMappingURL=training.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"training.js","sourceRoot":"","sources":["../../src/raids/training.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { ItemId } from '@opfr/items';
2
+ import type { CharacteristicsRecord } from '@opfr/utils-type';
3
+ export type RaidRewards = Partial<Record<ItemId | 'xp' | 'berry', number>>;
4
+ export type RaidPenalties = Partial<Record<ItemId | 'xp' | 'berry' | 'hp', number>>;
5
+ export type RaidRequirements = Partial<CharacteristicsRecord>;
6
+ export type RaidItemRequirements = Partial<Record<ItemId, number>>;
7
+ export type RaidStepId = {
8
+ UserChoice: `uc_${string}`;
9
+ Event: `ev_${string}`;
10
+ End: `end_${string}`;
11
+ CharacteristicsCheck: `c_${string}`;
12
+ ItemRequired: `rq_${string}`;
13
+ Goto: `goto_${string}`;
14
+ };
15
+ export type RaidGoto = {
16
+ id: RaidStepId['Goto'];
17
+ label: string;
18
+ goto: RaidStepId[keyof RaidStepId][];
19
+ };
20
+ export type RaidUserChoice = {
21
+ id: RaidStepId['UserChoice'];
22
+ label: string;
23
+ output: RaidCharacteristicsCheck | RaidEvent | RaidEnd;
24
+ };
25
+ export type RaidItemRequired = {
26
+ id: RaidStepId['ItemRequired'];
27
+ label: string;
28
+ requirements: RaidItemRequirements;
29
+ output: RaidCharacteristicsCheck | RaidEvent | RaidEnd;
30
+ };
31
+ export type RaidEvent = {
32
+ id: RaidStepId['Event'];
33
+ title: string;
34
+ text: string;
35
+ rewards?: RaidRewards;
36
+ penalties?: RaidPenalties;
37
+ outputs: (RaidUserChoice | RaidItemRequired | RaidGoto)[];
38
+ };
39
+ export type RaidEnd = {
40
+ id: RaidStepId['End'];
41
+ title: string;
42
+ text: string;
43
+ rewards?: RaidRewards;
44
+ penalties?: RaidPenalties;
45
+ };
46
+ export type RaidCharacteristicsCheck = {
47
+ id: RaidStepId['CharacteristicsCheck'];
48
+ requirements: RaidRequirements;
49
+ success: RaidEvent | RaidEnd;
50
+ failure: RaidEvent | RaidEnd;
51
+ };
52
+ export type Raid = {
53
+ id: string;
54
+ name: string;
55
+ description: string;
56
+ isSpecial: boolean;
57
+ start: RaidEvent;
58
+ };
59
+ export type RaidStep = RaidItemRequired | RaidEnd | RaidEvent | RaidUserChoice | RaidCharacteristicsCheck | RaidGoto;
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { ItemId } from '@opfr/items';
2
+ import type { Raid, RaidCharacteristicsCheck, RaidEnd, RaidEvent, RaidGoto, RaidItemRequired, RaidPenalties, RaidRewards, RaidStep, RaidStepId, RaidUserChoice } from './types';
3
+ export declare const isRaidEvent: (step: RaidStep) => step is RaidEvent;
4
+ export declare const isRaidUserChoice: (step: RaidStep) => step is RaidUserChoice;
5
+ export declare const isRaidGoto: (step: RaidStep) => step is RaidGoto;
6
+ export declare const isRaidEnd: (step: RaidStep) => step is RaidEnd;
7
+ export declare const isRaidCharacteristicsCheck: (step: RaidStep) => step is RaidCharacteristicsCheck;
8
+ export declare const isRaidItemRequired: (step: RaidStep) => step is RaidItemRequired;
9
+ export declare const formatRewards: (rewards?: RaidRewards, penalties?: RaidPenalties) => string;
10
+ export declare const getAllRaids: (isSpecial?: boolean) => Raid[];
11
+ export declare const getRaid: (raidId: string, itemId: ItemId | null) => Raid;
12
+ export declare const getCurrentRaidEvent: (progress: RaidStepId[keyof RaidStepId][], raid: Raid) => RaidEvent | RaidEnd;
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,OAAO,KAAK,EACV,IAAI,EACJ,wBAAwB,EACxB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,WAAW,SAAU,QAAQ,sBACf,CAAC;AAE5B,eAAO,MAAM,gBAAgB,SAAU,QAAQ,2BACpB,CAAC;AAE5B,eAAO,MAAM,UAAU,SAAU,QAAQ,qBACZ,CAAC;AAE9B,eAAO,MAAM,SAAS,SAAU,QAAQ,oBACZ,CAAC;AAE7B,eAAO,MAAM,0BAA0B,SAC/B,QAAQ,qCAC+C,CAAC;AAEhE,eAAO,MAAM,kBAAkB,SAAU,QAAQ,6BACtB,CAAC;AAE5B,eAAO,MAAM,aAAa,aACd,WAAW,cACT,aAAa,WA4C1B,CAAC;AAEF,eAAO,MAAM,WAAW,eAAgB,OAAO,KAAG,IAAI,EAGoB,CAAC;AAE3E,eAAO,MAAM,OAAO,WAAY,MAAM,UAAU,MAAM,GAAG,IAAI,KAAG,IAQ/D,CAAC;AAmBF,eAAO,MAAM,mBAAmB,aACpB,UAAU,CAAC,MAAM,UAAU,CAAC,EAAE,QAClC,IAAI,KACT,SAAS,GAAG,OAad,CAAC"}
package/dist/utils.js ADDED
@@ -0,0 +1,90 @@
1
+ import { t } from 'i18next';
2
+ import { emojis } from '@opfr/emojis';
3
+ import { findItem } from '@opfr/items';
4
+ import { formatNumber, isDefined } from '@opfr/utils-lang';
5
+ import * as AllRaids from './raids';
6
+ export const isRaidEvent = (step) => step.id.startsWith('ev_');
7
+ export const isRaidUserChoice = (step) => step.id.startsWith('uc_');
8
+ export const isRaidGoto = (step) => step.id.startsWith('goto_');
9
+ export const isRaidEnd = (step) => step.id.startsWith('end_');
10
+ export const isRaidCharacteristicsCheck = (step) => step.id.startsWith('c_');
11
+ export const isRaidItemRequired = (step) => step.id.startsWith('rq_');
12
+ export const formatRewards = (rewards, penalties) => {
13
+ const result = [];
14
+ if (rewards) {
15
+ result.push(`**${t('raid_rewards.reward_received')} :\n` +
16
+ Object.entries(rewards)
17
+ .filter(([, value]) => value > 0)
18
+ .map(([key, value]) => {
19
+ if (value === 0) {
20
+ return;
21
+ }
22
+ if (key === 'xp' || key === 'berry') {
23
+ return `- ${formatNumber(value)} ${emojis[key]}`;
24
+ }
25
+ const item = findItem(key);
26
+ return `- ${item.name(value)} ${item.emojis}`;
27
+ })
28
+ .join('\n') +
29
+ '**');
30
+ }
31
+ else {
32
+ result.push(`**${t('raid_rewards.no_reward_received')}**`);
33
+ }
34
+ if (penalties) {
35
+ result.push(`**${t('raid_rewards.penalty_received')} :\n` +
36
+ Object.entries(penalties)
37
+ .filter(([, value]) => value > 0)
38
+ .map(([key, value]) => {
39
+ if (key === 'xp' || key === 'berry') {
40
+ return `- ${formatNumber(value)} ${emojis[key]}`;
41
+ }
42
+ if (key === 'hp') {
43
+ return `- ${value} ${emojis.hp}`;
44
+ }
45
+ return `- ${findItem(key).name(value)} ${findItem(key).emojis}`;
46
+ })
47
+ .join('\n') +
48
+ '**');
49
+ }
50
+ return `${result.length > 0 ? '\n\n' : ''}${result.join('\n')}${result.length > 0 ? '\n' : ''}`;
51
+ };
52
+ export const getAllRaids = (isSpecial) => Object.values(AllRaids)
53
+ .map(raid => raid(null))
54
+ .filter(raid => !isDefined(isSpecial) || raid.isSpecial === isSpecial);
55
+ export const getRaid = (raidId, itemId) => {
56
+ const raidFn = Object.values(AllRaids).find(raid => raid(itemId).id === raidId);
57
+ if (!raidFn) {
58
+ throw new Error('raidBug');
59
+ }
60
+ return raidFn(itemId);
61
+ };
62
+ const getNextRaidStep = (currentEvent, nextStep) => {
63
+ if (isRaidEvent(currentEvent)) {
64
+ return currentEvent.outputs.find(choice => choice.id === nextStep);
65
+ }
66
+ if (isRaidCharacteristicsCheck(currentEvent)) {
67
+ return currentEvent.success.id === nextStep
68
+ ? currentEvent.success
69
+ : currentEvent.failure;
70
+ }
71
+ if (isRaidUserChoice(currentEvent) || isRaidItemRequired(currentEvent)) {
72
+ return currentEvent.output;
73
+ }
74
+ };
75
+ export const getCurrentRaidEvent = (progress, raid) => {
76
+ let currentEvent = raid.start;
77
+ for (const step of progress) {
78
+ if (!currentEvent) {
79
+ throw new Error('raidBug');
80
+ }
81
+ currentEvent = getNextRaidStep(currentEvent, step);
82
+ }
83
+ if (!currentEvent || !isRaidEvent(currentEvent)) {
84
+ throw new Error('raidBug');
85
+ }
86
+ return currentEvent;
87
+ };
88
+ // export const calcILvl = (eq: EquipableEquipment) =>
89
+ // Object.values(eq.characteristics).reduce((acc, e) => acc + e, 0) + eq.level;
90
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}