@opfr/entities 1.3.4 → 1.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/effects/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,MAAM,EAEP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,gBAAgB,CAAC;AAuBxB,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAAI,CAClC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEhD,eAAO,MAAM,QAAQ,EAAE;KAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;CAyXrD,CAAC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/effects/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,MAAM,EAEP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,gBAAgB,CAAC;AAGxB,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAAI,CAClC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAEhD,eAAO,MAAM,QAAQ,EAAE;KAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;CAyGrD,CAAC"}
@@ -1,141 +1,30 @@
1
- import { ornamentService, panoplyService, userInventoryService, userOrnamentService, userStatsInventoryService, } from '@opfr/services';
2
- import { entityService, userMetaService } from '@opfr/services';
3
- import { filterNullAndUndefined, groupBy, includeArrayIf, includeIf, mergeObjects, pickByOdds, pickFrom, pickFromNth, randomBetween, } from '@opfr/utils-lang';
4
- import { DEFAULT_ODD_OBJECT, bottleVariant2, bottleVariant3, mapArrayForEntries, pickRaidItems, reduceItemsArray, } from './utils';
1
+ import { entityService, userInventoryService, userMetaService, userOrnamentService, userStatsInventoryService, } from '@opfr/services';
2
+ import { mergeObjects, pickFrom, randomBetween } from '@opfr/utils-lang';
5
3
  export const HANDLERS = {
6
4
  OPEN_CHEST: async (userId, entity, params, quantity) => {
7
5
  const rewards = {
8
6
  berry: 0,
9
- xp: {
10
- bottle_xp_1: 0,
11
- bottle_xp_2_berry: 0,
12
- bottle_xp_2_casino: 0,
13
- bottle_xp_2_work: 0,
14
- bottle_xp_3_berry: 0,
15
- bottle_xp_3_casino: 0,
16
- bottle_xp_3_work: 0,
17
- },
18
- sugar_cane: 0,
19
- title: [],
20
- background: [],
21
- boostXpWeek: 0,
22
- boostXpDay: 0,
23
- emptyChest: 0,
24
- repairItem: [],
25
- shopItem: [],
26
- raidItem: [],
27
- adventurer: [],
28
- essence: [],
7
+ items: {},
29
8
  };
30
- const userOrnaments = await userOrnamentService.get(userId);
31
- const objectItems = await entityService.getAllEntitiesBy(entityService.isObjectItem);
32
- const repairItems = await entityService.getAllEntitiesBy(entityService.isRepairItem);
33
- const storeItems = await entityService.getAllEntitiesBy(entityService.isStoreItem);
34
- const adventurerPanoply = await panoplyService.getPopulated('adventurer');
35
- const titles = await ornamentService.getAllTitles();
36
- const backgrounds = await ornamentService.getAllBackgrounds();
37
9
  for (let i = 0; i < quantity; i++) {
38
10
  const [minBerry, maxBerry] = params.berry;
39
- const { bottle_xp_1, bottle_xp_2, bottle_xp_3 } = params.xp;
40
- const { odds } = params;
41
- const filteredTitles = titles.filter(item => !userOrnaments.unlockedTitles.includes(item.ornamentId));
42
- const filteredBackgrounds = backgrounds.filter(item => !userOrnaments.unlockedBackgrounds.includes(item.ornamentId));
11
+ const items = params.items;
43
12
  rewards.berry += randomBetween(minBerry, maxBerry + 1);
44
- rewards.xp.bottle_xp_1 += bottle_xp_1
45
- ? Array.isArray(bottle_xp_1)
46
- ? randomBetween(bottle_xp_1[0], bottle_xp_1[1] + 1)
47
- : bottle_xp_1
48
- : 0;
49
- const objBottle2 = bottleVariant2(bottle_xp_2
50
- ? Array.isArray(bottle_xp_2)
51
- ? randomBetween(bottle_xp_2[0], bottle_xp_2[1])
52
- : bottle_xp_2
53
- : 0);
54
- const objBottle3 = bottleVariant3(bottle_xp_3 ?? 0);
55
- rewards.xp['bottle_xp_2_berry'] += objBottle2.bottle_xp_2_berry ?? 0;
56
- rewards.xp['bottle_xp_2_work'] += objBottle2.bottle_xp_2_work ?? 0;
57
- rewards.xp['bottle_xp_2_casino'] += objBottle2.bottle_xp_2_casino ?? 0;
58
- rewards.xp['bottle_xp_3_berry'] += objBottle3.bottle_xp_3_berry ?? 0;
59
- rewards.xp['bottle_xp_3_work'] += objBottle3.bottle_xp_3_work ?? 0;
60
- rewards.xp['bottle_xp_3_casino'] += objBottle3.bottle_xp_3_casino ?? 0;
61
- const { sugar_cane } = params;
62
- rewards.sugar_cane = sugar_cane
63
- ? Array.isArray(sugar_cane)
64
- ? randomBetween(sugar_cane[0], sugar_cane[1])
65
- : sugar_cane
66
- : 0;
67
- if (odds.essence > 1) {
68
- rewards.essence.push(...(await entityService.recordToEntityTuple(pickFromNth(objectItems
69
- .map(({ entityId }) => entityId)
70
- .filter(id => id.startsWith('essence_')), odds.essence))));
71
- }
72
- else if (Math.random() < odds.essence) {
73
- rewards.essence.push([
74
- pickFrom(objectItems.filter(({ entityId }) => entityId.startsWith('essence_'))),
75
- 1,
76
- ]);
77
- }
78
- try {
79
- rewards.title = Array.isArray(odds.title)
80
- ? includeArrayIf(rewards.title, ornamentService.pickEachRarityOrnament(groupBy(filteredTitles, item => item.rankId), odds.title), true)
81
- : includeIf(rewards.title, pickByOdds({
82
- ...DEFAULT_ODD_OBJECT,
83
- ...groupBy(filteredTitles, item => item.odd ?? 0),
84
- }), Math.random() < odds.title);
85
- rewards.background = Array.isArray(odds.background)
86
- ? includeArrayIf(rewards.background, ornamentService.pickEachRarityOrnament(groupBy(filteredBackgrounds, item => item.rankId), odds.background), true)
87
- : includeIf(rewards.background, pickByOdds({
88
- ...DEFAULT_ODD_OBJECT,
89
- ...groupBy(filteredBackgrounds, item => item.odd ?? 0),
90
- }), Math.random() < odds.background);
91
- }
92
- catch {
93
- console.warn(`<@${userId}> can no longer obtain titles/backgrounds`);
94
- }
95
- rewards.boostXpWeek += Array.isArray(odds.boostXpWeek)
96
- ? randomBetween(odds.boostXpWeek[0], odds.boostXpWeek[1] + 1)
97
- : Number(Math.random() < odds.boostXpWeek);
98
- rewards.boostXpDay += Number(Math.random() < odds.boostXpDay);
99
- rewards.emptyChest += Number(Math.random() < odds.emptyChest);
100
- rewards.repairItem = includeIf(rewards.repairItem, [
101
- repairItems.filter(item => item.entityId !== 'repair_kit')[randomBetween(0, repairItems.length - 1)],
102
- randomBetween(1, params.tier * 2 + 2),
103
- ], Math.random() < odds.repairItem);
104
- rewards.shopItem = rewards.shopItem.concat(ornamentService
105
- .pickEachRarityOrnament(groupBy(storeItems, item => item.rankId), odds.shopItem)
106
- .map(item => [item, 1]));
107
- rewards.raidItem = rewards.raidItem.concat(filterNullAndUndefined(await pickRaidItems(odds.raidItem ?? 0)).map(entity => [entity, 1]));
108
- if (odds.adventurer) {
109
- rewards.adventurer.push(...Array.from({ length: odds.adventurer }).map(() => entityService.seedEquipment(pickFrom(adventurerPanoply?.equipments ?? []), Date.now() - Math.round(Math.random() * 1000))));
13
+ for (const itemReward of items) {
14
+ function isItemRank(item) {
15
+ return entityService.isItem(item) && item.rankId === itemReward.rank;
16
+ }
17
+ let pickItem;
18
+ do {
19
+ const range = await entityService.getAllItemsBy(isItemRank);
20
+ pickItem = pickFrom(range);
21
+ } while (pickItem.entityId in rewards.items);
22
+ rewards.items[pickItem.entityId] = Array.isArray(itemReward.quantity)
23
+ ? randomBetween(itemReward.quantity[0], itemReward.quantity[1])
24
+ : itemReward.quantity;
110
25
  }
111
26
  }
112
- rewards.title = filterNullAndUndefined(rewards.title);
113
- rewards.background = filterNullAndUndefined(rewards.background);
114
- rewards.berry = await userMetaService.updateUserBerry(userId, rewards.berry, false);
115
- rewards.repairItem = reduceItemsArray(rewards.repairItem);
116
- rewards.shopItem = reduceItemsArray(rewards.shopItem);
117
- rewards.essence = reduceItemsArray(rewards.essence);
118
- rewards.raidItem = reduceItemsArray(rewards.raidItem);
119
- await userInventoryService.addItems(userId, {
120
- bottle_xp_1: rewards.xp.bottle_xp_1,
121
- bottle_xp_2_berry: rewards.xp.bottle_xp_2_berry,
122
- bottle_xp_2_work: rewards.xp.bottle_xp_2_work,
123
- bottle_xp_2_casino: rewards.xp.bottle_xp_2_casino,
124
- bottle_xp_3_berry: rewards.xp.bottle_xp_3_berry,
125
- bottle_xp_3_work: rewards.xp.bottle_xp_3_work,
126
- bottle_xp_3_casino: rewards.xp.bottle_xp_3_casino,
127
- boost_xp_day: rewards.boostXpDay,
128
- boost_xp_week: rewards.boostXpWeek,
129
- sugar_cane_christmas: rewards.sugar_cane,
130
- empty_chest: rewards.emptyChest,
131
- ...Object.fromEntries(mapArrayForEntries(rewards.repairItem)),
132
- ...Object.fromEntries(mapArrayForEntries(rewards.shopItem)),
133
- ...Object.fromEntries(mapArrayForEntries(rewards.essence)),
134
- ...Object.fromEntries(mapArrayForEntries(rewards.raidItem)),
135
- });
136
- await userOrnamentService.unlockTitles(userId, rewards.title.map(item => item.ornamentId));
137
- await userOrnamentService.unlockBackgrounds(userId, rewards.background.map(item => item.ornamentId));
138
- await userInventoryService.addEquipments(userId, rewards.adventurer.map(({ entityId, seed }) => ({ entityId, seed })));
27
+ await userInventoryService.addItems(userId, rewards.items);
139
28
  await userStatsInventoryService.incrementChestOpenedTotal(userId, quantity);
140
29
  return rewards;
141
30
  },
@@ -144,48 +33,6 @@ export const HANDLERS = {
144
33
  await userMetaService.updateBuff(userId, params);
145
34
  }
146
35
  },
147
- ALCOHOL_DRINK: async (userId, entity, _params, quantity) => {
148
- await userStatsInventoryService.incrementAlcoholDrink(userId, entity.entityId, quantity);
149
- },
150
- BOOST: async (userId, entity, _params, quantity) => {
151
- return ((await userMetaService.updateBoost(userId, (entity.ms ?? 0) * quantity)) ?? new Date());
152
- },
153
- DRINK_BOTTLE: async (userId, entity, _params, quantity) => {
154
- if (!entityService.isBottleItem(entity)) {
155
- return;
156
- }
157
- const stats = {
158
- buffs: [],
159
- xp: 0,
160
- hp: 0,
161
- };
162
- if (entity.bottle.tier === 2) {
163
- await userMetaService.gainHp(userId, 50);
164
- }
165
- if (entity.bottle.tier === 3) {
166
- await userMetaService.gainHp(userId, 100);
167
- }
168
- for (let i = 0; i < quantity; i++) {
169
- const buffs = await userInventoryService.calcBottleMultiplier(userId, entity);
170
- stats.buffs.push(...buffs);
171
- await userMetaService.updateBuff(userId, buffs);
172
- if (Array.isArray(entity.bottle.xp)) {
173
- const [min, max] = entity.bottle.xp;
174
- stats.xp += randomBetween(min, max + 1);
175
- }
176
- else {
177
- stats.xp += entity.bottle.xp;
178
- }
179
- stats.hp += entity.bottle.hp ?? 0;
180
- }
181
- await userStatsInventoryService.incrementBottleUsedToday(userId, quantity);
182
- await userStatsInventoryService.incrementBottleUsedTotal(userId, quantity);
183
- return {
184
- xp: await userMetaService.updateUserXp(userId, stats.xp),
185
- buffs: stats.buffs,
186
- hp: stats.hp,
187
- };
188
- },
189
36
  HEAL_HP: async (userId, _entity, { amount }, quantity) => {
190
37
  await userMetaService.gainHp(userId, amount * quantity);
191
38
  },
@@ -226,14 +73,9 @@ export const HANDLERS = {
226
73
  await userMetaService.addScrollCharacteristic(userId, params);
227
74
  return params;
228
75
  },
229
- RAID_REDUCE_COOLDOWN: async () => {
76
+ RESET_CHARAC: async (userId) => {
77
+ await userMetaService.resetCharacteristics(userId);
230
78
  return;
231
79
  },
232
- CREW_XP_BUFF: async () => {
233
- return;
234
- },
235
- CREW_REPAIR: async () => {
236
- return 0;
237
- },
238
80
  };
239
81
  //# sourceMappingURL=handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/effects/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/effects/handlers.ts"],"names":[],"mappings":"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"}
package/dist/index.es.js CHANGED
@@ -1,273 +1,102 @@
1
- import { t as L } from "i18next";
2
- import { entityService as p, userMetaService as _, userOrnamentService as h, userInventoryService as g, userStatsInventoryService as A, panoplyService as F, ornamentService as f } from "@opfr/services";
3
- import { isString as G, pickFromNth as O, recordToArray as K, groupBy as u, mergeObjects as V, randomBetween as d, pickFrom as T, includeArrayIf as X, includeIf as C, pickByOdds as M, filterNullAndUndefined as N } from "@opfr/utils-lang";
4
- const Z = async (e, a = 0) => {
5
- const r = G(e) ? await p.get(e) : e;
6
- return r ? L(r.name.key, {
1
+ import { t as d } from "i18next";
2
+ import { entityService as i, userMetaService as p, userOrnamentService as E, userInventoryService as $, userStatsInventoryService as I } from "@opfr/services";
3
+ import { isString as A, mergeObjects as f, randomBetween as g, pickFrom as _ } from "@opfr/utils-lang";
4
+ const C = async (t, r = 0) => {
5
+ const e = A(t) ? await i.get(t) : t;
6
+ if (!e) return "";
7
+ const n = i.isItem(e) ? `${e.type}.${e.category}.${e.entityId}.name` : i.isEquipment(e) ? `${e.type}.${e.panoply}.${e.category}.name` : "";
8
+ return d(n, {
7
9
  ns: "entities",
8
- count: a,
9
- context: r.name.context
10
- }) : "";
11
- }, tt = (e, a = 0) => e ? L(e.name.key, {
12
- ns: "entities",
13
- count: a,
14
- context: e.name.context
15
- }) : "", J = (e) => O(
16
- ["bottle_xp_2_berry", "bottle_xp_2_casino", "bottle_xp_2_work"],
17
- e
18
- ), Y = (e) => O(
19
- ["bottle_xp_3_berry", "bottle_xp_3_casino", "bottle_xp_3_work"],
20
- e
21
- ), $ = (e) => Promise.all(
22
- K(
23
- O(
24
- ["anchor", "sailing_boat", "rescue_boat", "rudder", "hammock"],
25
- e
26
- )
27
- ).reduce((a, [r, n]) => a.concat(new Array(n).fill(r)), []).map((a) => p.get(a))
28
- ), I = (e) => {
29
- const a = u(e, ([r]) => r.entityId);
30
- return Object.values(a).map((r) => [
31
- r[0][0],
32
- r.reduce((n, [, t]) => n + t, 0)
33
- ]);
34
- }, E = (e) => e.map(([{ entityId: a }, r]) => [a, r]), P = {
35
- 0.5: [],
36
- 0.3: [],
37
- 0.15: [],
38
- 0.04: [],
39
- 0.01: []
40
- }, et = {
41
- OPEN_CHEST: async (e, a, r, n) => {
42
- const t = {
10
+ count: r
11
+ });
12
+ }, N = async (t, r = 0) => {
13
+ const e = A(t) ? await i.get(t) : t;
14
+ if (!e) return "";
15
+ const n = i.isItem(e) ? `${e.type}.${e.category}.${e.entityId}.description` : i.isEquipment(e) ? `${e.type}.${e.panoply}.${e.category}.description` : "";
16
+ return d(n, {
17
+ ns: "entities",
18
+ count: r
19
+ });
20
+ }, O = (t, r = 0) => {
21
+ const e = i.isItem(t) ? `${t.type}.${t.category}.${t.entityId}.name` : i.isEquipment(t) ? `${t.type}.${t.panoply}.${t.category}.name` : "";
22
+ return d(e, {
23
+ ns: "entities",
24
+ count: r
25
+ });
26
+ }, H = (t, r = 0) => {
27
+ const e = i.isItem(t) ? `${t.type}.${t.category}.${t.entityId}.description` : i.isEquipment(t) ? `${t.type}.${t.panoply}.${t.category}.description` : "";
28
+ return d(e, {
29
+ ns: "entities",
30
+ count: r
31
+ });
32
+ }, P = {
33
+ OPEN_CHEST: async (t, r, e, n) => {
34
+ const s = {
43
35
  berry: 0,
44
- xp: {
45
- bottle_xp_1: 0,
46
- bottle_xp_2_berry: 0,
47
- bottle_xp_2_casino: 0,
48
- bottle_xp_2_work: 0,
49
- bottle_xp_3_berry: 0,
50
- bottle_xp_3_casino: 0,
51
- bottle_xp_3_work: 0
52
- },
53
- sugar_cane: 0,
54
- title: [],
55
- background: [],
56
- boostXpWeek: 0,
57
- boostXpDay: 0,
58
- emptyChest: 0,
59
- repairItem: [],
60
- shopItem: [],
61
- raidItem: [],
62
- adventurer: [],
63
- essence: []
64
- }, l = await h.get(e), i = await p.getAllEntitiesBy(
65
- p.isObjectItem
66
- ), c = await p.getAllEntitiesBy(
67
- p.isRepairItem
68
- ), b = await p.getAllEntitiesBy(
69
- p.isStoreItem
70
- ), y = await F.getPopulated("adventurer"), U = await f.getAllTitles(), W = await f.getAllBackgrounds();
71
- for (let m = 0; m < n; m++) {
72
- const [B, j] = r.berry, { bottle_xp_1: x, bottle_xp_2: k, bottle_xp_3: H } = r.xp, { odds: s } = r, v = U.filter(
73
- (o) => !l.unlockedTitles.includes(o.ornamentId)
74
- ), S = W.filter(
75
- (o) => !l.unlockedBackgrounds.includes(o.ornamentId)
76
- );
77
- t.berry += d(B, j + 1), t.xp.bottle_xp_1 += x ? Array.isArray(x) ? d(x[0], x[1] + 1) : x : 0;
78
- const R = J(
79
- k ? Array.isArray(k) ? d(k[0], k[1]) : k : 0
80
- ), D = Y(H ?? 0);
81
- t.xp.bottle_xp_2_berry += R.bottle_xp_2_berry ?? 0, t.xp.bottle_xp_2_work += R.bottle_xp_2_work ?? 0, t.xp.bottle_xp_2_casino += R.bottle_xp_2_casino ?? 0, t.xp.bottle_xp_3_berry += D.bottle_xp_3_berry ?? 0, t.xp.bottle_xp_3_work += D.bottle_xp_3_work ?? 0, t.xp.bottle_xp_3_casino += D.bottle_xp_3_casino ?? 0;
82
- const { sugar_cane: w } = r;
83
- t.sugar_cane = w ? Array.isArray(w) ? d(w[0], w[1]) : w : 0, s.essence > 1 ? t.essence.push(
84
- ...await p.recordToEntityTuple(
85
- O(
86
- i.map(({ entityId: o }) => o).filter((o) => o.startsWith("essence_")),
87
- s.essence
88
- )
89
- )
90
- ) : Math.random() < s.essence && t.essence.push([
91
- T(
92
- i.filter(
93
- ({ entityId: o }) => o.startsWith("essence_")
94
- )
95
- ),
96
- 1
97
- ]);
98
- try {
99
- t.title = Array.isArray(s.title) ? X(
100
- t.title,
101
- f.pickEachRarityOrnament(
102
- u(v, (o) => o.rankId),
103
- s.title
104
- ),
105
- !0
106
- ) : C(
107
- t.title,
108
- M({
109
- ...P,
110
- ...u(v, (o) => o.odd ?? 0)
111
- }),
112
- Math.random() < s.title
113
- ), t.background = Array.isArray(s.background) ? X(
114
- t.background,
115
- f.pickEachRarityOrnament(
116
- u(S, (o) => o.rankId),
117
- s.background
118
- ),
119
- !0
120
- ) : C(
121
- t.background,
122
- M({
123
- ...P,
124
- ...u(S, (o) => o.odd ?? 0)
125
- }),
126
- Math.random() < s.background
127
- );
128
- } catch {
129
- console.warn(`<@${e}> can no longer obtain titles/backgrounds`);
36
+ items: {}
37
+ };
38
+ for (let y = 0; y < n; y++) {
39
+ const [a, o] = e.berry, m = e.items;
40
+ s.berry += g(a, o + 1);
41
+ for (const c of m) {
42
+ let w = function(u) {
43
+ return i.isItem(u) && u.rankId === c.rank;
44
+ }, l;
45
+ do {
46
+ const u = await i.getAllItemsBy(w);
47
+ l = _(u);
48
+ } while (l.entityId in s.items);
49
+ s.items[l.entityId] = Array.isArray(c.quantity) ? g(c.quantity[0], c.quantity[1]) : c.quantity;
130
50
  }
131
- t.boostXpWeek += Array.isArray(s.boostXpWeek) ? d(s.boostXpWeek[0], s.boostXpWeek[1] + 1) : +(Math.random() < s.boostXpWeek), t.boostXpDay += +(Math.random() < s.boostXpDay), t.emptyChest += +(Math.random() < s.emptyChest), t.repairItem = C(
132
- t.repairItem,
133
- [
134
- c.filter((o) => o.entityId !== "repair_kit")[d(0, c.length - 1)],
135
- d(1, r.tier * 2 + 2)
136
- ],
137
- Math.random() < s.repairItem
138
- ), t.shopItem = t.shopItem.concat(
139
- f.pickEachRarityOrnament(
140
- u(b, (o) => o.rankId),
141
- s.shopItem
142
- ).map((o) => [o, 1])
143
- ), t.raidItem = t.raidItem.concat(
144
- N(await $(s.raidItem ?? 0)).map(
145
- (o) => [o, 1]
146
- )
147
- ), s.adventurer && t.adventurer.push(
148
- ...Array.from({ length: s.adventurer }).map(
149
- () => p.seedEquipment(
150
- T(y?.equipments ?? []),
151
- Date.now() - Math.round(Math.random() * 1e3)
152
- )
153
- )
154
- );
155
51
  }
156
- return t.title = N(t.title), t.background = N(t.background), t.berry = await _.updateUserBerry(
157
- e,
158
- t.berry,
159
- !1
160
- ), t.repairItem = I(t.repairItem), t.shopItem = I(t.shopItem), t.essence = I(t.essence), t.raidItem = I(t.raidItem), await g.addItems(e, {
161
- bottle_xp_1: t.xp.bottle_xp_1,
162
- bottle_xp_2_berry: t.xp.bottle_xp_2_berry,
163
- bottle_xp_2_work: t.xp.bottle_xp_2_work,
164
- bottle_xp_2_casino: t.xp.bottle_xp_2_casino,
165
- bottle_xp_3_berry: t.xp.bottle_xp_3_berry,
166
- bottle_xp_3_work: t.xp.bottle_xp_3_work,
167
- bottle_xp_3_casino: t.xp.bottle_xp_3_casino,
168
- boost_xp_day: t.boostXpDay,
169
- boost_xp_week: t.boostXpWeek,
170
- sugar_cane_christmas: t.sugar_cane,
171
- empty_chest: t.emptyChest,
172
- ...Object.fromEntries(E(t.repairItem)),
173
- ...Object.fromEntries(E(t.shopItem)),
174
- ...Object.fromEntries(E(t.essence)),
175
- ...Object.fromEntries(E(t.raidItem))
176
- }), await h.unlockTitles(
177
- e,
178
- t.title.map((m) => m.ornamentId)
179
- ), await h.unlockBackgrounds(
180
- e,
181
- t.background.map((m) => m.ornamentId)
182
- ), await g.addEquipments(
183
- e,
184
- t.adventurer.map(({ entityId: m, seed: B }) => ({ entityId: m, seed: B }))
185
- ), await A.incrementChestOpenedTotal(e, n), t;
186
- },
187
- APPLY_BUFF: async (e, a, r, n) => {
188
- for (let t = 0; t < n; t++)
189
- await _.updateBuff(e, r);
190
- },
191
- ALCOHOL_DRINK: async (e, a, r, n) => {
192
- await A.incrementAlcoholDrink(
193
- e,
194
- a.entityId,
195
- n
196
- );
52
+ return await $.addItems(t, s.items), await I.incrementChestOpenedTotal(t, n), s;
197
53
  },
198
- BOOST: async (e, a, r, n) => await _.updateBoost(
199
- e,
200
- (a.ms ?? 0) * n
201
- ) ?? /* @__PURE__ */ new Date(),
202
- DRINK_BOTTLE: async (e, a, r, n) => {
203
- if (!p.isBottleItem(a))
204
- return;
205
- const t = {
206
- buffs: [],
207
- xp: 0,
208
- hp: 0
209
- };
210
- a.bottle.tier === 2 && await _.gainHp(e, 50), a.bottle.tier === 3 && await _.gainHp(e, 100);
211
- for (let l = 0; l < n; l++) {
212
- const i = await g.calcBottleMultiplier(
213
- e,
214
- a
215
- );
216
- if (t.buffs.push(...i), await _.updateBuff(e, i), Array.isArray(a.bottle.xp)) {
217
- const [c, b] = a.bottle.xp;
218
- t.xp += d(c, b + 1);
219
- } else
220
- t.xp += a.bottle.xp;
221
- t.hp += a.bottle.hp ?? 0;
222
- }
223
- return await A.incrementBottleUsedToday(e, n), await A.incrementBottleUsedTotal(e, n), {
224
- xp: await _.updateUserXp(e, t.xp),
225
- buffs: t.buffs,
226
- hp: t.hp
227
- };
54
+ APPLY_BUFF: async (t, r, e, n) => {
55
+ for (let s = 0; s < n; s++)
56
+ await p.updateBuff(t, e);
228
57
  },
229
- HEAL_HP: async (e, a, { amount: r }, n) => {
230
- await _.gainHp(e, r * n);
58
+ HEAL_HP: async (t, r, { amount: e }, n) => {
59
+ await p.gainHp(t, e * n);
231
60
  },
232
- GAIN_XP: async (e, a, { amount: r }, n) => await _.updateUserXp(e, r * n),
233
- GAIN_RANDOM_XP: async (e, a, { amounts: [r, n], odd: t }, l) => {
234
- let i = 0;
235
- for (let c = 0; c < l; c++)
236
- i += Math.random() < t ? r : n;
237
- return await _.updateUserXp(e, i);
61
+ GAIN_XP: async (t, r, { amount: e }, n) => await p.updateUserXp(t, e * n),
62
+ GAIN_RANDOM_XP: async (t, r, { amounts: [e, n], odd: s }, y) => {
63
+ let a = 0;
64
+ for (let o = 0; o < y; o++)
65
+ a += Math.random() < s ? e : n;
66
+ return await p.updateUserXp(t, a);
238
67
  },
239
- DROP: async (e, a, r, n) => {
240
- const t = [];
241
- for (let i = 0; i < n; i++) {
242
- const c = {};
243
- for (const b in r) {
244
- const y = Math.random();
245
- c[b] = +(y < r[b]);
68
+ DROP: async (t, r, e, n) => {
69
+ const s = [];
70
+ for (let a = 0; a < n; a++) {
71
+ const o = {};
72
+ for (const m in e) {
73
+ const c = Math.random();
74
+ o[m] = +(c < e[m]);
246
75
  }
247
- t.push(c);
76
+ s.push(o);
248
77
  }
249
- const l = t.reduce(
250
- (i, c) => V(i, c, (b, y) => b + y)
78
+ const y = s.reduce(
79
+ (a, o) => f(a, o, (m, c) => m + c)
251
80
  );
252
- return await g.addItems(e, {
253
- ...l
254
- }), l;
255
- },
256
- CLEAR_HANGOVER: (e) => {
257
- console.log(e);
258
- },
259
- UNLOCK_ASSET: async (e, a, r) => {
260
- await h.unlockProfileAsset(e, r.assetId);
81
+ return await $.addItems(t, {
82
+ ...y
83
+ }), y;
261
84
  },
262
- ADD_SCROLL_CHARAC: async (e, a, r) => (await _.addScrollCharacteristic(e, r), r),
263
- RAID_REDUCE_COOLDOWN: async () => {
85
+ CLEAR_HANGOVER: (t) => {
86
+ console.log(t);
264
87
  },
265
- CREW_XP_BUFF: async () => {
88
+ UNLOCK_ASSET: async (t, r, e) => {
89
+ await E.unlockProfileAsset(t, e.assetId);
266
90
  },
267
- CREW_REPAIR: async () => 0
91
+ ADD_SCROLL_CHARAC: async (t, r, e) => (await p.addScrollCharacteristic(t, e), e),
92
+ RESET_CHARAC: async (t) => {
93
+ await p.resetCharacteristics(t);
94
+ }
268
95
  };
269
96
  export {
270
- et as HANDLERS,
271
- tt as getEntityName,
272
- Z as getEntityNameAsync
97
+ P as HANDLERS,
98
+ H as getEntityDescription,
99
+ N as getEntityDescriptionAsync,
100
+ O as getEntityName,
101
+ C as getEntityNameAsync
273
102
  };
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(m,y){typeof exports=="object"&&typeof module<"u"?y(exports,require("i18next"),require("@opfr/services"),require("@opfr/utils-lang")):typeof define=="function"&&define.amd?define(["exports","i18next","@opfr/services","@opfr/utils-lang"],y):(m=typeof globalThis<"u"?globalThis:m||self,y(m.entities={},m.i18next,m["@opfr/services"],m["@opfr/utils-lang"]))})(this,(function(m,y,r,n){"use strict";const N=async(t,a=0)=>{const o=n.isString(t)?await r.entityService.get(t):t;return o?y.t(o.name.key,{ns:"entities",count:a,context:o.name.context}):""},M=(t,a=0)=>t?y.t(t.name.key,{ns:"entities",count:a,context:t.name.context}):"",R=t=>n.pickFromNth(["bottle_xp_2_berry","bottle_xp_2_casino","bottle_xp_2_work"],t),g=t=>n.pickFromNth(["bottle_xp_3_berry","bottle_xp_3_casino","bottle_xp_3_work"],t),v=t=>Promise.all(n.recordToArray(n.pickFromNth(["anchor","sailing_boat","rescue_boat","rudder","hammock"],t)).reduce((a,[o,c])=>a.concat(new Array(c).fill(o)),[]).map(a=>r.entityService.get(a))),w=t=>{const a=n.groupBy(t,([o])=>o.entityId);return Object.values(a).map(o=>[o[0][0],o.reduce((c,[,e])=>c+e,0)])},S=t=>t.map(([{entityId:a},o])=>[a,o]),B={.5:[],.3:[],.15:[],.04:[],.01:[]},D={OPEN_CHEST:async(t,a,o,c)=>{const e={berry:0,xp:{bottle_xp_1:0,bottle_xp_2_berry:0,bottle_xp_2_casino:0,bottle_xp_2_work:0,bottle_xp_3_berry:0,bottle_xp_3_casino:0,bottle_xp_3_work:0},sugar_cane:0,title:[],background:[],boostXpWeek:0,boostXpDay:0,emptyChest:0,repairItem:[],shopItem:[],raidItem:[],adventurer:[],essence:[]},l=await r.userOrnamentService.get(t),_=await r.entityService.getAllEntitiesBy(r.entityService.isObjectItem),s=await r.entityService.getAllEntitiesBy(r.entityService.isRepairItem),d=await r.entityService.getAllEntitiesBy(r.entityService.isStoreItem),u=await r.panoplyService.getPopulated("adventurer"),T=await r.ornamentService.getAllTitles(),C=await r.ornamentService.getAllBackgrounds();for(let b=0;b<c;b++){const[h,X]=o.berry,{bottle_xp_1:x,bottle_xp_2:f,bottle_xp_3:P}=o.xp,{odds:p}=o,O=T.filter(i=>!l.unlockedTitles.includes(i.ornamentId)),E=C.filter(i=>!l.unlockedBackgrounds.includes(i.ornamentId));e.berry+=n.randomBetween(h,X+1),e.xp.bottle_xp_1+=x?Array.isArray(x)?n.randomBetween(x[0],x[1]+1):x:0;const A=R(f?Array.isArray(f)?n.randomBetween(f[0],f[1]):f:0),I=g(P??0);e.xp.bottle_xp_2_berry+=A.bottle_xp_2_berry??0,e.xp.bottle_xp_2_work+=A.bottle_xp_2_work??0,e.xp.bottle_xp_2_casino+=A.bottle_xp_2_casino??0,e.xp.bottle_xp_3_berry+=I.bottle_xp_3_berry??0,e.xp.bottle_xp_3_work+=I.bottle_xp_3_work??0,e.xp.bottle_xp_3_casino+=I.bottle_xp_3_casino??0;const{sugar_cane:k}=o;e.sugar_cane=k?Array.isArray(k)?n.randomBetween(k[0],k[1]):k:0,p.essence>1?e.essence.push(...await r.entityService.recordToEntityTuple(n.pickFromNth(_.map(({entityId:i})=>i).filter(i=>i.startsWith("essence_")),p.essence))):Math.random()<p.essence&&e.essence.push([n.pickFrom(_.filter(({entityId:i})=>i.startsWith("essence_"))),1]);try{e.title=Array.isArray(p.title)?n.includeArrayIf(e.title,r.ornamentService.pickEachRarityOrnament(n.groupBy(O,i=>i.rankId),p.title),!0):n.includeIf(e.title,n.pickByOdds({...B,...n.groupBy(O,i=>i.odd??0)}),Math.random()<p.title),e.background=Array.isArray(p.background)?n.includeArrayIf(e.background,r.ornamentService.pickEachRarityOrnament(n.groupBy(E,i=>i.rankId),p.background),!0):n.includeIf(e.background,n.pickByOdds({...B,...n.groupBy(E,i=>i.odd??0)}),Math.random()<p.background)}catch{console.warn(`<@${t}> can no longer obtain titles/backgrounds`)}e.boostXpWeek+=Array.isArray(p.boostXpWeek)?n.randomBetween(p.boostXpWeek[0],p.boostXpWeek[1]+1):+(Math.random()<p.boostXpWeek),e.boostXpDay+=+(Math.random()<p.boostXpDay),e.emptyChest+=+(Math.random()<p.emptyChest),e.repairItem=n.includeIf(e.repairItem,[s.filter(i=>i.entityId!=="repair_kit")[n.randomBetween(0,s.length-1)],n.randomBetween(1,o.tier*2+2)],Math.random()<p.repairItem),e.shopItem=e.shopItem.concat(r.ornamentService.pickEachRarityOrnament(n.groupBy(d,i=>i.rankId),p.shopItem).map(i=>[i,1])),e.raidItem=e.raidItem.concat(n.filterNullAndUndefined(await v(p.raidItem??0)).map(i=>[i,1])),p.adventurer&&e.adventurer.push(...Array.from({length:p.adventurer}).map(()=>r.entityService.seedEquipment(n.pickFrom(u?.equipments??[]),Date.now()-Math.round(Math.random()*1e3))))}return e.title=n.filterNullAndUndefined(e.title),e.background=n.filterNullAndUndefined(e.background),e.berry=await r.userMetaService.updateUserBerry(t,e.berry,!1),e.repairItem=w(e.repairItem),e.shopItem=w(e.shopItem),e.essence=w(e.essence),e.raidItem=w(e.raidItem),await r.userInventoryService.addItems(t,{bottle_xp_1:e.xp.bottle_xp_1,bottle_xp_2_berry:e.xp.bottle_xp_2_berry,bottle_xp_2_work:e.xp.bottle_xp_2_work,bottle_xp_2_casino:e.xp.bottle_xp_2_casino,bottle_xp_3_berry:e.xp.bottle_xp_3_berry,bottle_xp_3_work:e.xp.bottle_xp_3_work,bottle_xp_3_casino:e.xp.bottle_xp_3_casino,boost_xp_day:e.boostXpDay,boost_xp_week:e.boostXpWeek,sugar_cane_christmas:e.sugar_cane,empty_chest:e.emptyChest,...Object.fromEntries(S(e.repairItem)),...Object.fromEntries(S(e.shopItem)),...Object.fromEntries(S(e.essence)),...Object.fromEntries(S(e.raidItem))}),await r.userOrnamentService.unlockTitles(t,e.title.map(b=>b.ornamentId)),await r.userOrnamentService.unlockBackgrounds(t,e.background.map(b=>b.ornamentId)),await r.userInventoryService.addEquipments(t,e.adventurer.map(({entityId:b,seed:h})=>({entityId:b,seed:h}))),await r.userStatsInventoryService.incrementChestOpenedTotal(t,c),e},APPLY_BUFF:async(t,a,o,c)=>{for(let e=0;e<c;e++)await r.userMetaService.updateBuff(t,o)},ALCOHOL_DRINK:async(t,a,o,c)=>{await r.userStatsInventoryService.incrementAlcoholDrink(t,a.entityId,c)},BOOST:async(t,a,o,c)=>await r.userMetaService.updateBoost(t,(a.ms??0)*c)??new Date,DRINK_BOTTLE:async(t,a,o,c)=>{if(!r.entityService.isBottleItem(a))return;const e={buffs:[],xp:0,hp:0};a.bottle.tier===2&&await r.userMetaService.gainHp(t,50),a.bottle.tier===3&&await r.userMetaService.gainHp(t,100);for(let l=0;l<c;l++){const _=await r.userInventoryService.calcBottleMultiplier(t,a);if(e.buffs.push(..._),await r.userMetaService.updateBuff(t,_),Array.isArray(a.bottle.xp)){const[s,d]=a.bottle.xp;e.xp+=n.randomBetween(s,d+1)}else e.xp+=a.bottle.xp;e.hp+=a.bottle.hp??0}return await r.userStatsInventoryService.incrementBottleUsedToday(t,c),await r.userStatsInventoryService.incrementBottleUsedTotal(t,c),{xp:await r.userMetaService.updateUserXp(t,e.xp),buffs:e.buffs,hp:e.hp}},HEAL_HP:async(t,a,{amount:o},c)=>{await r.userMetaService.gainHp(t,o*c)},GAIN_XP:async(t,a,{amount:o},c)=>await r.userMetaService.updateUserXp(t,o*c),GAIN_RANDOM_XP:async(t,a,{amounts:[o,c],odd:e},l)=>{let _=0;for(let s=0;s<l;s++)_+=Math.random()<e?o:c;return await r.userMetaService.updateUserXp(t,_)},DROP:async(t,a,o,c)=>{const e=[];for(let _=0;_<c;_++){const s={};for(const d in o){const u=Math.random();s[d]=+(u<o[d])}e.push(s)}const l=e.reduce((_,s)=>n.mergeObjects(_,s,(d,u)=>d+u));return await r.userInventoryService.addItems(t,{...l}),l},CLEAR_HANGOVER:t=>{console.log(t)},UNLOCK_ASSET:async(t,a,o)=>{await r.userOrnamentService.unlockProfileAsset(t,o.assetId)},ADD_SCROLL_CHARAC:async(t,a,o)=>(await r.userMetaService.addScrollCharacteristic(t,o),o),RAID_REDUCE_COOLDOWN:async()=>{},CREW_XP_BUFF:async()=>{},CREW_REPAIR:async()=>0};m.HANDLERS=D,m.getEntityName=M,m.getEntityNameAsync=N,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(a,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("i18next"),require("@opfr/services"),require("@opfr/utils-lang")):typeof define=="function"&&define.amd?define(["exports","i18next","@opfr/services","@opfr/utils-lang"],u):(a=typeof globalThis<"u"?globalThis:a||self,u(a.entities={},a.i18next,a["@opfr/services"],a["@opfr/utils-lang"]))})(this,(function(a,u,n,m){"use strict";const l=async(t,r=0)=>{const e=m.isString(t)?await n.entityService.get(t):t;if(!e)return"";const i=n.entityService.isItem(e)?`${e.type}.${e.category}.${e.entityId}.name`:n.entityService.isEquipment(e)?`${e.type}.${e.panoply}.${e.category}.name`:"";return u.t(i,{ns:"entities",count:r})},$=async(t,r=0)=>{const e=m.isString(t)?await n.entityService.get(t):t;if(!e)return"";const i=n.entityService.isItem(e)?`${e.type}.${e.category}.${e.entityId}.description`:n.entityService.isEquipment(e)?`${e.type}.${e.panoply}.${e.category}.description`:"";return u.t(i,{ns:"entities",count:r})},A=(t,r=0)=>{const e=n.entityService.isItem(t)?`${t.type}.${t.category}.${t.entityId}.name`:n.entityService.isEquipment(t)?`${t.type}.${t.panoply}.${t.category}.name`:"";return u.t(e,{ns:"entities",count:r})},g=(t,r=0)=>{const e=n.entityService.isItem(t)?`${t.type}.${t.category}.${t.entityId}.description`:n.entityService.isEquipment(t)?`${t.type}.${t.panoply}.${t.category}.description`:"";return u.t(e,{ns:"entities",count:r})},E={OPEN_CHEST:async(t,r,e,i)=>{const o={berry:0,items:{}};for(let p=0;p<i;p++){const[y,c]=e.berry,d=e.items;o.berry+=m.randomBetween(y,c+1);for(const s of d){let w=function(S){return n.entityService.isItem(S)&&S.rankId===s.rank},f;do{const S=await n.entityService.getAllItemsBy(w);f=m.pickFrom(S)}while(f.entityId in o.items);o.items[f.entityId]=Array.isArray(s.quantity)?m.randomBetween(s.quantity[0],s.quantity[1]):s.quantity}}return await n.userInventoryService.addItems(t,o.items),await n.userStatsInventoryService.incrementChestOpenedTotal(t,i),o},APPLY_BUFF:async(t,r,e,i)=>{for(let o=0;o<i;o++)await n.userMetaService.updateBuff(t,e)},HEAL_HP:async(t,r,{amount:e},i)=>{await n.userMetaService.gainHp(t,e*i)},GAIN_XP:async(t,r,{amount:e},i)=>await n.userMetaService.updateUserXp(t,e*i),GAIN_RANDOM_XP:async(t,r,{amounts:[e,i],odd:o},p)=>{let y=0;for(let c=0;c<p;c++)y+=Math.random()<o?e:i;return await n.userMetaService.updateUserXp(t,y)},DROP:async(t,r,e,i)=>{const o=[];for(let y=0;y<i;y++){const c={};for(const d in e){const s=Math.random();c[d]=+(s<e[d])}o.push(c)}const p=o.reduce((y,c)=>m.mergeObjects(y,c,(d,s)=>d+s));return await n.userInventoryService.addItems(t,{...p}),p},CLEAR_HANGOVER:t=>{console.log(t)},UNLOCK_ASSET:async(t,r,e)=>{await n.userOrnamentService.unlockProfileAsset(t,e.assetId)},ADD_SCROLL_CHARAC:async(t,r,e)=>(await n.userMetaService.addScrollCharacteristic(t,e),e),RESET_CHARAC:async t=>{await n.userMetaService.resetCharacteristics(t)}};a.HANDLERS=E,a.getEntityDescription=g,a.getEntityDescriptionAsync=$,a.getEntityName=A,a.getEntityNameAsync=l,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
package/dist/utils.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type { Entity } from '@opfr/definitions';
2
2
  export declare const getEntityNameAsync: (entityId: string | Entity, count?: number) => Promise<string>;
3
+ export declare const getEntityDescriptionAsync: (entityId: string | Entity, count?: number) => Promise<string>;
3
4
  export declare const getEntityName: (entity: Entity, count?: number) => string;
5
+ export declare const getEntityDescription: (entity: Entity, count?: number) => string;
4
6
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,GAAG,MAAM,EACzB,QAAO,MAAU,oBAalB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,QAAO,MAAU,WAQ9D,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,GAAG,MAAM,EACzB,QAAO,MAAU,oBAkBlB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,UAAU,MAAM,GAAG,MAAM,EACzB,QAAO,MAAU,oBAkBlB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,QAAO,MAAU,WAW9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,EAAE,QAAO,MAAU,WAWrE,CAAC"}
package/dist/utils.js CHANGED
@@ -5,21 +5,54 @@ export const getEntityNameAsync = async (entityId, count = 0) => {
5
5
  const entity = isString(entityId)
6
6
  ? await entityService.get(entityId)
7
7
  : entityId;
8
- return entity
9
- ? t(entity.name.key, {
10
- ns: 'entities',
11
- count,
12
- context: entity.name.context,
13
- })
14
- : '';
8
+ if (!entity)
9
+ return '';
10
+ const key = entityService.isItem(entity)
11
+ ? `${entity.type}.${entity.category}.${entity.entityId}.name`
12
+ : entityService.isEquipment(entity)
13
+ ? `${entity.type}.${entity.panoply}.${entity.category}.name`
14
+ : '';
15
+ return t(key, {
16
+ ns: 'entities',
17
+ count,
18
+ });
19
+ };
20
+ export const getEntityDescriptionAsync = async (entityId, count = 0) => {
21
+ const entity = isString(entityId)
22
+ ? await entityService.get(entityId)
23
+ : entityId;
24
+ if (!entity)
25
+ return '';
26
+ const key = entityService.isItem(entity)
27
+ ? `${entity.type}.${entity.category}.${entity.entityId}.description`
28
+ : entityService.isEquipment(entity)
29
+ ? `${entity.type}.${entity.panoply}.${entity.category}.description`
30
+ : '';
31
+ return t(key, {
32
+ ns: 'entities',
33
+ count,
34
+ });
15
35
  };
16
36
  export const getEntityName = (entity, count = 0) => {
17
- return entity
18
- ? t(entity.name.key, {
19
- ns: 'entities',
20
- count,
21
- context: entity.name.context,
22
- })
23
- : '';
37
+ const key = entityService.isItem(entity)
38
+ ? `${entity.type}.${entity.category}.${entity.entityId}.name`
39
+ : entityService.isEquipment(entity)
40
+ ? `${entity.type}.${entity.panoply}.${entity.category}.name`
41
+ : '';
42
+ return t(key, {
43
+ ns: 'entities',
44
+ count,
45
+ });
46
+ };
47
+ export const getEntityDescription = (entity, count = 0) => {
48
+ const key = entityService.isItem(entity)
49
+ ? `${entity.type}.${entity.category}.${entity.entityId}.description`
50
+ : entityService.isEquipment(entity)
51
+ ? `${entity.type}.${entity.panoply}.${entity.category}.description`
52
+ : '';
53
+ return t(key, {
54
+ ns: 'entities',
55
+ count,
56
+ });
24
57
  };
25
58
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,QAAyB,EACzB,QAAgB,CAAC,EACjB,EAAE;IACF,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnC,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,MAAM;QACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,EAAE,EAAE,UAAU;YACd,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;SAC7B,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,QAAgB,CAAC,EAAE,EAAE;IACjE,OAAO,MAAM;QACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,EAAE,EAAE,UAAU;YACd,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;SAC7B,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;AACT,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opfr/entities",
3
- "version": "1.3.4",
3
+ "version": "1.4.0",
4
4
  "private": false,
5
5
  "description": "OPFR entities manager",
6
6
  "author": "Matthieu VEIGA",
@@ -9,9 +9,9 @@
9
9
  "build": "vite build && tsc"
10
10
  },
11
11
  "devDependencies": {
12
- "@opfr/definitions": "^1.6.1",
12
+ "@opfr/definitions": "^1.7.0",
13
13
  "@opfr/emojis": "^1.1.0",
14
- "@opfr/services": "^1.5.2",
14
+ "@opfr/services": "^1.6.0",
15
15
  "@opfr/utils-lang": "^1.1.1",
16
16
  "@opfr/utils-type": "^1.1.0",
17
17
  "i18next": "23.16.8"
@@ -41,5 +41,5 @@
41
41
  "node_modules",
42
42
  "dist"
43
43
  ],
44
- "gitHead": "d7a9832dc7c05d22b45392929191b94766314d52"
44
+ "gitHead": "415ffc7bbbf05e8f88f7f87296c9dd81a227edbd"
45
45
  }