@dchighs/dc-config-mapper 0.2.0 → 0.2.2

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 (30) hide show
  1. package/dist/enums/reward-acronym.enum.d.ts +29 -0
  2. package/dist/enums/reward-acronym.enum.js +33 -0
  3. package/dist/enums/reward-type.enum.d.ts +10 -0
  4. package/dist/enums/reward-type.enum.js +14 -0
  5. package/dist/mappers/chest.mapper.d.ts +7 -7
  6. package/dist/mappers/heroic-races.mapper.d.ts +9 -9
  7. package/dist/mappers/maze-islands.mapper.d.ts +9 -16
  8. package/dist/mappers/tower-islands.mapper.d.ts +9 -3
  9. package/dist/mappers/tower-islands.mapper.js +3 -1
  10. package/dist/schemas/chests/chest.schema.d.ts +21 -21
  11. package/dist/schemas/chests/reward.schema.d.ts +7 -8
  12. package/dist/schemas/chests/reward.schema.js +2 -48
  13. package/dist/schemas/islands/heroic-races/reward.schema.d.ts +9 -10
  14. package/dist/schemas/islands/heroic-races/reward.schema.js +2 -17
  15. package/dist/schemas/islands/maze-islands/node.schema.d.ts +9 -17
  16. package/dist/schemas/islands/maze-islands/node.schema.js +2 -29
  17. package/dist/schemas/islands/tower-islands/island.schema.d.ts +3 -0
  18. package/dist/schemas/islands/tower-islands/island.schema.js +2 -0
  19. package/dist/schemas/islands/tower-islands/square.schema.d.ts +8 -3
  20. package/dist/schemas/islands/tower-islands/square.schema.js +1 -19
  21. package/dist/schemas/items/building.schema.js +2 -24
  22. package/dist/schemas/items/deco.schema.js +2 -24
  23. package/dist/schemas/items/dragon.schema.js +6 -28
  24. package/dist/utils/index.d.ts +2 -0
  25. package/dist/utils/index.js +2 -0
  26. package/dist/utils/process-price.util.d.ts +4 -0
  27. package/dist/utils/process-price.util.js +25 -0
  28. package/dist/utils/process-rewards.util.d.ts +17 -0
  29. package/dist/utils/process-rewards.util.js +67 -0
  30. package/package.json +2 -1
@@ -0,0 +1,29 @@
1
+ export declare enum RewardAcronym {
2
+ Chest = "chest",
3
+ Dragon = "egg",
4
+ Gold = "g",
5
+ Gem = "c",
6
+ Food = "f",
7
+ Building = "b",
8
+ TerraToken = "e_token",
9
+ FlameToken = "f_token",
10
+ SeaToken = "w_token",
11
+ NatureToken = "p_token",
12
+ ElectricToken = "el_token",
13
+ IceToken = "i_token",
14
+ MetalToken = "m_token",
15
+ DarkToken = "d_token",
16
+ LightToken = "li_token",
17
+ WarToken = "wr_token",
18
+ PureToken = "pu_token",
19
+ LegendToken = "l_token",
20
+ PrimalToken = "pr_token",
21
+ WindToken = "wd_token",
22
+ TimeToken = "ti_token",
23
+ HappyToken = "hp_token",
24
+ ChaosToken = "ch_token",
25
+ MagicToken = "mg_token",
26
+ SoulToken = "so_token",
27
+ BeautyToken = "bt_token",
28
+ DreamToken = "dr_token"
29
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RewardAcronym = void 0;
4
+ var RewardAcronym;
5
+ (function (RewardAcronym) {
6
+ RewardAcronym["Chest"] = "chest";
7
+ RewardAcronym["Dragon"] = "egg";
8
+ RewardAcronym["Gold"] = "g";
9
+ RewardAcronym["Gem"] = "c";
10
+ RewardAcronym["Food"] = "f";
11
+ RewardAcronym["Building"] = "b";
12
+ RewardAcronym["TerraToken"] = "e_token";
13
+ RewardAcronym["FlameToken"] = "f_token";
14
+ RewardAcronym["SeaToken"] = "w_token";
15
+ RewardAcronym["NatureToken"] = "p_token";
16
+ RewardAcronym["ElectricToken"] = "el_token";
17
+ RewardAcronym["IceToken"] = "i_token";
18
+ RewardAcronym["MetalToken"] = "m_token";
19
+ RewardAcronym["DarkToken"] = "d_token";
20
+ RewardAcronym["LightToken"] = "li_token";
21
+ RewardAcronym["WarToken"] = "wr_token";
22
+ RewardAcronym["PureToken"] = "pu_token";
23
+ RewardAcronym["LegendToken"] = "l_token";
24
+ RewardAcronym["PrimalToken"] = "pr_token";
25
+ RewardAcronym["WindToken"] = "wd_token";
26
+ RewardAcronym["TimeToken"] = "ti_token";
27
+ RewardAcronym["HappyToken"] = "hp_token";
28
+ RewardAcronym["ChaosToken"] = "ch_token";
29
+ RewardAcronym["MagicToken"] = "mg_token";
30
+ RewardAcronym["SoulToken"] = "so_token";
31
+ RewardAcronym["BeautyToken"] = "bt_token";
32
+ RewardAcronym["DreamToken"] = "dr_token";
33
+ })(RewardAcronym || (exports.RewardAcronym = RewardAcronym = {}));
@@ -0,0 +1,10 @@
1
+ export declare enum RewardType {
2
+ Chest = "chest",
3
+ Dragon = "dragon",
4
+ Building = "building",
5
+ Gold = "gold",
6
+ Gem = "gem",
7
+ Food = "food",
8
+ HabitatToken = "habitat_token",
9
+ IslandCoin = "island_coin"
10
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RewardType = void 0;
4
+ var RewardType;
5
+ (function (RewardType) {
6
+ RewardType["Chest"] = "chest";
7
+ RewardType["Dragon"] = "dragon";
8
+ RewardType["Building"] = "building";
9
+ RewardType["Gold"] = "gold";
10
+ RewardType["Gem"] = "gem";
11
+ RewardType["Food"] = "food";
12
+ RewardType["HabitatToken"] = "habitat_token";
13
+ RewardType["IslandCoin"] = "island_coin";
14
+ })(RewardType || (exports.RewardType = RewardType = {}));
@@ -12,13 +12,13 @@ export declare class ChestsMapper {
12
12
  id: number;
13
13
  reward: {
14
14
  resource: {
15
- type: import("../enums/reward-resource-type.enum").RewardResourceType;
16
- amount: number;
17
- element?: undefined;
18
- } | {
19
- type: import("../enums/reward-resource-type.enum").RewardResourceType;
20
- element: import("@dchighs/dc-core").DragonElement;
21
- amount: never;
15
+ type: import("../enums/reward-type.enum").RewardType;
16
+ element?: import("@dchighs/dc-core").DragonElement;
17
+ amount?: number;
18
+ chest_id?: number;
19
+ dragon_id?: number;
20
+ dragon_ids?: number[];
21
+ building_id?: number;
22
22
  } | undefined;
23
23
  building_ids: number[] | undefined;
24
24
  eggs_ids: number[] | undefined;
@@ -32,15 +32,15 @@ export declare class HeroicRacesMapper {
32
32
  rewards: {
33
33
  id: number;
34
34
  positions: number[];
35
- rewards: ({
36
- type: import("../enums/reward-resource-type.enum").RewardResourceType;
37
- amount: number;
38
- dragon_ids?: undefined;
39
- } | {
40
- type: import("../enums/reward-resource-type.enum").RewardResourceType;
41
- dragon_ids: number[];
42
- amount?: undefined;
43
- })[];
35
+ reward: {
36
+ type: import("../enums/reward-type.enum").RewardType;
37
+ element?: import("@dchighs/dc-core").DragonElement;
38
+ amount?: number;
39
+ chest_id?: number;
40
+ dragon_id?: number;
41
+ dragon_ids?: number[];
42
+ building_id?: number;
43
+ }[];
44
44
  }[];
45
45
  encounters: {
46
46
  id: number;
@@ -106,22 +106,15 @@ export declare class MazeIslandsMapper {
106
106
  nodes: import("@dchighs/dc-localization/dist/types").Translated<{
107
107
  id: number;
108
108
  cost: number;
109
- rewards: ({
110
- type: import("../enums/reward-resource-type.enum").RewardResourceType;
111
- amount: number;
112
- chest_id?: undefined;
113
- building_id?: undefined;
114
- } | {
115
- type: import("../enums/reward-resource-type.enum").RewardResourceType;
116
- chest_id: number;
117
- amount?: undefined;
118
- building_id?: undefined;
119
- } | {
120
- type: import("../enums/reward-resource-type.enum").RewardResourceType;
121
- building_id: number;
122
- amount?: undefined;
123
- chest_id?: undefined;
124
- })[] | undefined;
109
+ rewards: {
110
+ type: import("../enums/reward-type.enum").RewardType;
111
+ element?: import("@dchighs/dc-core").DragonElement;
112
+ amount?: number;
113
+ chest_id?: number;
114
+ dragon_id?: number;
115
+ dragon_ids?: number[];
116
+ building_id?: number;
117
+ }[] | undefined;
125
118
  is_highlighted: boolean | undefined;
126
119
  key_path_id: number | undefined;
127
120
  encounter_id: number | undefined;
@@ -27,6 +27,7 @@ export declare class TowerIslandsMapper {
27
27
  help_view_id: number;
28
28
  square_ids: number[];
29
29
  floor_ids: number[];
30
+ reward_ids: number[];
30
31
  }>[];
31
32
  floors: import("@dchighs/dc-localization/dist/types").Translated<{
32
33
  id: number;
@@ -44,9 +45,14 @@ export declare class TowerIslandsMapper {
44
45
  y: number;
45
46
  ixy: string;
46
47
  rewards: {
47
- chest?: number | undefined;
48
- egg?: number | undefined;
49
- }[] | undefined;
48
+ type: import("../enums/reward-type.enum").RewardType;
49
+ element?: import("@dchighs/dc-core").DragonElement;
50
+ amount?: number;
51
+ chest_id?: number;
52
+ dragon_id?: number;
53
+ dragon_ids?: number[];
54
+ building_id?: number;
55
+ }[] | null;
50
56
  wall: string | undefined;
51
57
  catapult_destination_square_id: number | undefined;
52
58
  piece_reward_id: number | undefined;
@@ -14,10 +14,12 @@ class TowerIslandsMapper {
14
14
  islands: data.islands.map(island => {
15
15
  const squareIds = data.squares.filter(square => square.island_id === island.id).map(square => square.id);
16
16
  const floorIds = data.floors.filter(floor => floor.island_id === island.id).map(floor => floor.id);
17
+ const rewardIds = data.rewards.filter(reward => reward.island_id === island.id).map(reward => reward.id);
17
18
  return this.localization.translate(island_schema_1.towerIslandSchema.parse({
18
19
  ...island,
19
20
  square_ids: squareIds,
20
- floor_ids: floorIds
21
+ floor_ids: floorIds,
22
+ reward_ids: rewardIds,
21
23
  }));
22
24
  }),
23
25
  floors: data.floors.map(floor => this.localization.translate(floor_schema_1.towerIslandsFloorSchema.parse(floor))),
@@ -49,13 +49,13 @@ export declare const chestSchema: z.ZodPipe<z.ZodObject<{
49
49
  id: number;
50
50
  reward: {
51
51
  resource: {
52
- type: import("../../enums/reward-resource-type.enum").RewardResourceType;
53
- amount: number;
54
- element?: undefined;
55
- } | {
56
- type: import("../../enums/reward-resource-type.enum").RewardResourceType;
57
- element: import("@dchighs/dc-core").DragonElement;
58
- amount: never;
52
+ type: import("../../enums/reward-type.enum").RewardType;
53
+ element?: import("@dchighs/dc-core").DragonElement;
54
+ amount?: number;
55
+ chest_id?: number;
56
+ dragon_id?: number;
57
+ dragon_ids?: number[];
58
+ building_id?: number;
59
59
  } | undefined;
60
60
  building_ids: number[] | undefined;
61
61
  eggs_ids: number[] | undefined;
@@ -137,13 +137,13 @@ export declare const chestSchema: z.ZodPipe<z.ZodObject<{
137
137
  id: number;
138
138
  reward: {
139
139
  resource: {
140
- type: import("../../enums/reward-resource-type.enum").RewardResourceType;
141
- amount: number;
142
- element?: undefined;
143
- } | {
144
- type: import("../../enums/reward-resource-type.enum").RewardResourceType;
145
- element: import("@dchighs/dc-core").DragonElement;
146
- amount: never;
140
+ type: import("../../enums/reward-type.enum").RewardType;
141
+ element?: import("@dchighs/dc-core").DragonElement;
142
+ amount?: number;
143
+ chest_id?: number;
144
+ dragon_id?: number;
145
+ dragon_ids?: number[];
146
+ building_id?: number;
147
147
  } | undefined;
148
148
  building_ids: number[] | undefined;
149
149
  eggs_ids: number[] | undefined;
@@ -181,13 +181,13 @@ export declare const chestSchema: z.ZodPipe<z.ZodObject<{
181
181
  id: number;
182
182
  reward: {
183
183
  resource: {
184
- type: import("../../enums/reward-resource-type.enum").RewardResourceType;
185
- amount: number;
186
- element?: undefined;
187
- } | {
188
- type: import("../../enums/reward-resource-type.enum").RewardResourceType;
189
- element: import("@dchighs/dc-core").DragonElement;
190
- amount: never;
184
+ type: import("../../enums/reward-type.enum").RewardType;
185
+ element?: import("@dchighs/dc-core").DragonElement;
186
+ amount?: number;
187
+ chest_id?: number;
188
+ dragon_id?: number;
189
+ dragon_ids?: number[];
190
+ building_id?: number;
191
191
  } | undefined;
192
192
  building_ids: number[] | undefined;
193
193
  eggs_ids: number[] | undefined;
@@ -1,5 +1,4 @@
1
1
  import { z } from "zod";
2
- import { RewardResourceType } from "../../enums/reward-resource-type.enum";
3
2
  export declare const chestRewardSchema: z.ZodPipe<z.ZodObject<{
4
3
  id: z.ZodNumber;
5
4
  reward: z.ZodObject<{
@@ -47,13 +46,13 @@ export declare const chestRewardSchema: z.ZodPipe<z.ZodObject<{
47
46
  id: number;
48
47
  reward: {
49
48
  resource: {
50
- type: RewardResourceType;
51
- amount: number;
52
- element?: undefined;
53
- } | {
54
- type: RewardResourceType;
55
- element: import("@dchighs/dc-core").DragonElement;
56
- amount: never;
49
+ type: import("../../enums/reward-type.enum").RewardType;
50
+ element?: import("@dchighs/dc-core").DragonElement;
51
+ amount?: number;
52
+ chest_id?: number;
53
+ dragon_id?: number;
54
+ dragon_ids?: number[];
55
+ building_id?: number;
57
56
  } | undefined;
58
57
  building_ids: number[] | undefined;
59
58
  eggs_ids: number[] | undefined;
@@ -2,53 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.chestRewardSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const reward_resource_type_enum_1 = require("../../enums/reward-resource-type.enum");
6
- const element_map_util_1 = require("../../utils/element-map.util");
7
- function processReward(rewardResource) {
8
- if (!rewardResource) {
9
- return;
10
- }
11
- if (rewardResource === null || rewardResource === void 0 ? void 0 : rewardResource.c) {
12
- return {
13
- type: reward_resource_type_enum_1.RewardResourceType.Gem,
14
- amount: rewardResource.c,
15
- };
16
- }
17
- if (rewardResource === null || rewardResource === void 0 ? void 0 : rewardResource.f) {
18
- return {
19
- type: reward_resource_type_enum_1.RewardResourceType.Food,
20
- amount: rewardResource.f,
21
- };
22
- }
23
- if (rewardResource === null || rewardResource === void 0 ? void 0 : rewardResource.g) {
24
- return {
25
- type: reward_resource_type_enum_1.RewardResourceType.Gold,
26
- amount: rewardResource.g,
27
- };
28
- }
29
- const tokenKey = Object.keys(rewardResource).find((key) => key.endsWith("_token"));
30
- if (tokenKey) {
31
- const elementAcronym = tokenKey.replace("_token", "");
32
- return {
33
- type: reward_resource_type_enum_1.RewardResourceType.HabitatToken,
34
- element: element_map_util_1.elementMap[elementAcronym],
35
- amount: rewardResource[tokenKey],
36
- };
37
- }
38
- if (rewardResource === null || rewardResource === void 0 ? void 0 : rewardResource.ep) {
39
- return {
40
- type: reward_resource_type_enum_1.RewardResourceType.IslandCoin,
41
- amount: rewardResource.ep,
42
- };
43
- }
44
- if (rewardResource === null || rewardResource === void 0 ? void 0 : rewardResource.x) {
45
- return {
46
- type: reward_resource_type_enum_1.RewardResourceType.Xp,
47
- amount: rewardResource.x,
48
- };
49
- }
50
- throw new Error(`Invalid reward resource: ${JSON.stringify(rewardResource)}`);
51
- }
5
+ const utils_1 = require("../../utils");
52
6
  exports.chestRewardSchema = zod_1.z.object({
53
7
  id: zod_1.z.number(),
54
8
  reward: zod_1.z.object({
@@ -94,7 +48,7 @@ exports.chestRewardSchema = zod_1.z.object({
94
48
  weight: zod_1.z.number(),
95
49
  }).strict().transform((data) => {
96
50
  const reward = {
97
- resource: data.reward.resource ? processReward(data.reward.resource) : undefined,
51
+ resource: data.reward.resource ? (0, utils_1.processRewards)([data.reward.resource])[0] : undefined,
98
52
  building_ids: data.reward.buildings,
99
53
  eggs_ids: data.reward.eggs,
100
54
  seeds: data.reward.seeds,
@@ -1,5 +1,4 @@
1
1
  import { z } from "zod";
2
- import { RewardResourceType } from "../../../enums/reward-resource-type.enum";
3
2
  export declare const heroicRacesRewardSchema: z.ZodPipe<z.ZodObject<{
4
3
  id: z.ZodNumber;
5
4
  positions: z.ZodArray<z.ZodNumber>;
@@ -10,15 +9,15 @@ export declare const heroicRacesRewardSchema: z.ZodPipe<z.ZodObject<{
10
9
  }, z.core.$strict>, z.ZodTransform<{
11
10
  id: number;
12
11
  positions: number[];
13
- rewards: ({
14
- type: RewardResourceType;
15
- amount: number;
16
- dragon_ids?: undefined;
17
- } | {
18
- type: RewardResourceType;
19
- dragon_ids: number[];
20
- amount?: undefined;
21
- })[];
12
+ reward: {
13
+ type: import("../../../enums/reward-type.enum").RewardType;
14
+ element?: import("@dchighs/dc-core").DragonElement;
15
+ amount?: number;
16
+ chest_id?: number;
17
+ dragon_id?: number;
18
+ dragon_ids?: number[];
19
+ building_id?: number;
20
+ }[];
22
21
  }, {
23
22
  id: number;
24
23
  positions: number[];
@@ -2,22 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.heroicRacesRewardSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const reward_resource_type_enum_1 = require("../../../enums/reward-resource-type.enum");
6
- function processReward(reward) {
7
- if (reward.c) {
8
- return {
9
- type: reward_resource_type_enum_1.RewardResourceType.Gem,
10
- amount: reward.c,
11
- };
12
- }
13
- if (reward.egg) {
14
- return {
15
- type: reward_resource_type_enum_1.RewardResourceType.Dragon,
16
- dragon_ids: reward.egg,
17
- };
18
- }
19
- throw new Error(`Invalid reward: ${JSON.stringify(reward)}`);
20
- }
5
+ const utils_1 = require("../../../utils");
21
6
  exports.heroicRacesRewardSchema = zod_1.z.object({
22
7
  id: zod_1.z.number(),
23
8
  positions: zod_1.z.array(zod_1.z.number()),
@@ -29,6 +14,6 @@ exports.heroicRacesRewardSchema = zod_1.z.object({
29
14
  return {
30
15
  id: data.id,
31
16
  positions: data.positions,
32
- rewards: data.rewards.map(processReward),
17
+ reward: (0, utils_1.processRewards)(data.rewards),
33
18
  };
34
19
  });
@@ -1,5 +1,4 @@
1
1
  import { z } from "zod";
2
- import { RewardResourceType } from "../../../enums/reward-resource-type.enum";
3
2
  export declare const mazeIslandsNodeSchema: z.ZodPipe<z.ZodObject<{
4
3
  id: z.ZodNumber;
5
4
  position: z.ZodArray<z.ZodNumber>;
@@ -22,22 +21,15 @@ export declare const mazeIslandsNodeSchema: z.ZodPipe<z.ZodObject<{
22
21
  }, z.core.$strict>, z.ZodTransform<{
23
22
  id: number;
24
23
  cost: number;
25
- rewards: ({
26
- type: RewardResourceType;
27
- amount: number;
28
- chest_id?: undefined;
29
- building_id?: undefined;
30
- } | {
31
- type: RewardResourceType;
32
- chest_id: number;
33
- amount?: undefined;
34
- building_id?: undefined;
35
- } | {
36
- type: RewardResourceType;
37
- building_id: number;
38
- amount?: undefined;
39
- chest_id?: undefined;
40
- })[] | undefined;
24
+ rewards: {
25
+ type: import("../../../enums/reward-type.enum").RewardType;
26
+ element?: import("@dchighs/dc-core").DragonElement;
27
+ amount?: number;
28
+ chest_id?: number;
29
+ dragon_id?: number;
30
+ dragon_ids?: number[];
31
+ building_id?: number;
32
+ }[] | undefined;
41
33
  is_highlighted: boolean | undefined;
42
34
  key_path_id: number | undefined;
43
35
  encounter_id: number | undefined;
@@ -2,34 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mazeIslandsNodeSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const reward_resource_type_enum_1 = require("../../../enums/reward-resource-type.enum");
6
- function processReward(reward) {
7
- if (reward === null || reward === void 0 ? void 0 : reward.f) {
8
- return {
9
- type: reward_resource_type_enum_1.RewardResourceType.Food,
10
- amount: reward.f,
11
- };
12
- }
13
- if (reward === null || reward === void 0 ? void 0 : reward.g) {
14
- return {
15
- type: reward_resource_type_enum_1.RewardResourceType.Gold,
16
- amount: reward.g,
17
- };
18
- }
19
- if (reward === null || reward === void 0 ? void 0 : reward.chest) {
20
- return {
21
- type: reward_resource_type_enum_1.RewardResourceType.Chest,
22
- chest_id: reward.chest,
23
- };
24
- }
25
- if (reward === null || reward === void 0 ? void 0 : reward.b) {
26
- return {
27
- type: reward_resource_type_enum_1.RewardResourceType.Building,
28
- building_id: reward.b,
29
- };
30
- }
31
- throw new Error(`Invalid reward: ${JSON.stringify(reward)}`);
32
- }
5
+ const utils_1 = require("../../../utils");
33
6
  exports.mazeIslandsNodeSchema = zod_1.z.object({
34
7
  id: zod_1.z.number(),
35
8
  position: zod_1.z.array(zod_1.z.number()).length(2),
@@ -54,7 +27,7 @@ exports.mazeIslandsNodeSchema = zod_1.z.object({
54
27
  return {
55
28
  id: data.id,
56
29
  cost: (_b = (_a = data.cost) === null || _a === void 0 ? void 0 : _a.ep) !== null && _b !== void 0 ? _b : 0,
57
- rewards: data.reward ? data.reward.map(processReward) : undefined,
30
+ rewards: data.reward ? (0, utils_1.processRewards)(data.reward) : undefined,
58
31
  is_highlighted: data.highlighted,
59
32
  key_path_id: data.key,
60
33
  encounter_id: data.encounter,
@@ -36,6 +36,7 @@ export declare const towerIslandSchema: z.ZodPipe<z.ZodObject<{
36
36
  }, z.core.$strip>;
37
37
  square_ids: z.ZodArray<z.ZodNumber>;
38
38
  floor_ids: z.ZodArray<z.ZodNumber>;
39
+ reward_ids: z.ZodArray<z.ZodNumber>;
39
40
  }, z.core.$strict>, z.ZodTransform<{
40
41
  id: number;
41
42
  name_key: string;
@@ -58,6 +59,7 @@ export declare const towerIslandSchema: z.ZodPipe<z.ZodObject<{
58
59
  help_view_id: number;
59
60
  square_ids: number[];
60
61
  floor_ids: number[];
62
+ reward_ids: number[];
61
63
  }, {
62
64
  id: number;
63
65
  analytics_id: string;
@@ -95,4 +97,5 @@ export declare const towerIslandSchema: z.ZodPipe<z.ZodObject<{
95
97
  };
96
98
  square_ids: number[];
97
99
  floor_ids: number[];
100
+ reward_ids: number[];
98
101
  }>>;
@@ -44,6 +44,7 @@ exports.towerIslandSchema = zod_1.z.object({
44
44
  // injected properties
45
45
  square_ids: zod_1.z.array(zod_1.z.number()),
46
46
  floor_ids: zod_1.z.array(zod_1.z.number()),
47
+ reward_ids: zod_1.z.array(zod_1.z.number()),
47
48
  }).strict().transform(data => {
48
49
  return {
49
50
  id: data.id,
@@ -67,5 +68,6 @@ exports.towerIslandSchema = zod_1.z.object({
67
68
  help_view_id: data.help_view_id,
68
69
  square_ids: data.square_ids,
69
70
  floor_ids: data.floor_ids,
71
+ reward_ids: data.reward_ids,
70
72
  };
71
73
  });
@@ -22,9 +22,14 @@ export declare const towerIslandsSquareSchema: z.ZodPipe<z.ZodObject<{
22
22
  y: number;
23
23
  ixy: string;
24
24
  rewards: {
25
- chest?: number | undefined;
26
- egg?: number | undefined;
27
- }[] | undefined;
25
+ type: import("../../../enums/reward-type.enum").RewardType;
26
+ element?: import("@dchighs/dc-core").DragonElement;
27
+ amount?: number;
28
+ chest_id?: number;
29
+ dragon_id?: number;
30
+ dragon_ids?: number[];
31
+ building_id?: number;
32
+ }[] | null;
28
33
  wall: string | undefined;
29
34
  catapult_destination_square_id: number | undefined;
30
35
  piece_reward_id: number | undefined;
@@ -3,24 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.towerIslandsSquareSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const utils_1 = require("../../../utils");
6
- /*
7
- {
8
- id: number;
9
- type: string;
10
- highlight: number;
11
- x: number;
12
- y: number;
13
- island_id: number;
14
- ixy: string;
15
- rewards_array?: Array<{
16
- chest?: number;
17
- egg?: number;
18
- }>;
19
- wall?: string;
20
- catapult_destination_square_id?: number;
21
- piece_reward_id?: number;
22
- }
23
- */
24
6
  exports.towerIslandsSquareSchema = zod_1.z.object({
25
7
  id: zod_1.z.number(),
26
8
  type: zod_1.z.string(),
@@ -44,7 +26,7 @@ exports.towerIslandsSquareSchema = zod_1.z.object({
44
26
  x: data.x,
45
27
  y: data.y,
46
28
  ixy: data.ixy,
47
- rewards: data.rewards_array,
29
+ rewards: data.rewards_array ? (0, utils_1.processRewards)(data.rewards_array) : null,
48
30
  wall: data.wall,
49
31
  catapult_destination_square_id: data.catapult_destination_square_id,
50
32
  piece_reward_id: data.piece_reward_id,
@@ -3,28 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildingSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const utils_1 = require("../../utils");
6
- const enums_1 = require("../../enums");
7
- const processPrice = (priceObj) => {
8
- const keys = Object.keys(priceObj);
9
- if (keys.length === 0)
10
- return null;
11
- if (keys.length > 1) {
12
- throw new Error(`Unexpected multiple price keys: ${JSON.stringify(priceObj)}`);
13
- }
14
- const key = keys[0];
15
- const amount = priceObj[key];
16
- const typeMap = {
17
- [enums_1.CostType.Gold]: "gold",
18
- [enums_1.CostType.Gem]: "gem",
19
- };
20
- if (!typeMap[key]) {
21
- throw new Error(`Unexpected price key: ${key}`);
22
- }
23
- return {
24
- type: typeMap[key],
25
- amount: amount,
26
- };
27
- };
28
6
  exports.buildingSchema = zod_1.z.object({
29
7
  id: zod_1.z.number(),
30
8
  name: zod_1.z.string(),
@@ -99,7 +77,7 @@ exports.buildingSchema = zod_1.z.object({
99
77
  element_type: data.element_type,
100
78
  xp_on_build: data.xp,
101
79
  min_level: data.min_level,
102
- buy_price: processPrice(data.costs),
80
+ buy_price: (0, utils_1.processPrice)(data.costs),
103
81
  display_order: data.display_order,
104
82
  boost_modifier: data.boost_modifier,
105
83
  cost_unit_cash: data.cost_unit_cash,
@@ -124,7 +102,7 @@ exports.buildingSchema = zod_1.z.object({
124
102
  description: data.description,
125
103
  properties: data.properties,
126
104
  building_ownership_id: data.building_ownership_id,
127
- sell_price: data.sell_price ? processPrice(data.sell_price) : null,
105
+ sell_price: data.sell_price ? (0, utils_1.processPrice)(data.sell_price) : null,
128
106
  inventory_ids: data.inventory_ids,
129
107
  };
130
108
  });
@@ -3,28 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.decoSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const utils_1 = require("../../utils");
6
- const enums_1 = require("../../enums");
7
- const processPrice = (priceObj) => {
8
- const keys = Object.keys(priceObj);
9
- if (keys.length === 0)
10
- return null;
11
- if (keys.length > 1) {
12
- throw new Error(`Unexpected multiple price keys: ${JSON.stringify(priceObj)}`);
13
- }
14
- const key = keys[0];
15
- const amount = priceObj[key];
16
- const typeMap = {
17
- [enums_1.CostType.Gold]: "gold",
18
- [enums_1.CostType.Gem]: "gem",
19
- };
20
- if (!typeMap[key]) {
21
- throw new Error(`Unexpected price key: ${key}`);
22
- }
23
- return {
24
- type: typeMap[key],
25
- amount: amount,
26
- };
27
- };
28
6
  exports.decoSchema = zod_1.z.object({
29
7
  id: zod_1.z.number(),
30
8
  name: zod_1.z.string(),
@@ -98,8 +76,8 @@ exports.decoSchema = zod_1.z.object({
98
76
  element_type: data.element_type,
99
77
  xp_on_build: data.xp,
100
78
  min_level: data.min_level,
101
- buy_price: processPrice(data.costs),
102
- sell_price: data.sell_price ? processPrice(data.sell_price) : null,
79
+ buy_price: (0, utils_1.processPrice)(data.costs),
80
+ sell_price: data.sell_price ? (0, utils_1.processPrice)(data.sell_price) : null,
103
81
  display_order: data.display_order,
104
82
  boost_modifier: data.boost_modifier,
105
83
  cost_unit_cash: data.cost_unit_cash,
@@ -2,30 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dragonSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const number_to_boolean_util_1 = require("../../utils/number-to-boolean.util");
5
+ const utils_1 = require("../../utils");
6
6
  const element_map_util_1 = require("../../utils/element-map.util");
7
- const enums_1 = require("../../enums");
8
- const processPrice = (priceObj) => {
9
- const keys = Object.keys(priceObj);
10
- if (keys.length === 0)
11
- return null;
12
- if (keys.length > 1) {
13
- throw new Error(`Unexpected multiple price keys: ${JSON.stringify(priceObj)}`);
14
- }
15
- const key = keys[0];
16
- const amount = priceObj[key];
17
- const typeMap = {
18
- [enums_1.CostType.Gold]: "gold",
19
- [enums_1.CostType.Gem]: "gem",
20
- };
21
- if (!typeMap[key]) {
22
- throw new Error(`Unexpected price key: ${key}`);
23
- }
24
- return {
25
- type: typeMap[key],
26
- amount: amount,
27
- };
28
- };
29
7
  exports.dragonSchema = zod_1.z.object({
30
8
  id: zod_1.z.number(),
31
9
  name: zod_1.z.string(),
@@ -108,11 +86,11 @@ exports.dragonSchema = zod_1.z.object({
108
86
  elements: data.attributes.map((element) => element_map_util_1.elementMap[element]),
109
87
  description: data.description,
110
88
  description_key: `tid_unit_${data.id}_description`,
111
- buy_price: processPrice(data.costs),
112
- sell_price: processPrice(data.sell_price),
113
- is_breedable: (0, number_to_boolean_util_1.numberToBoolean)(data.breedable),
114
- can_breed: (0, number_to_boolean_util_1.numberToBoolean)(data.can_breed),
115
- is_in_store: (0, number_to_boolean_util_1.numberToBoolean)(data.in_store),
89
+ buy_price: (0, utils_1.processPrice)(data.costs),
90
+ sell_price: (0, utils_1.processPrice)(data.sell_price),
91
+ is_breedable: (0, utils_1.numberToBoolean)(data.breedable),
92
+ can_breed: (0, utils_1.numberToBoolean)(data.can_breed),
93
+ is_in_store: (0, utils_1.numberToBoolean)(data.in_store),
116
94
  min_store_level: data.in_store_min_level,
117
95
  basic_attack_ids: data.attacks,
118
96
  trainable_attack_ids: data.trainable_attacks,
@@ -1,3 +1,5 @@
1
1
  export * from "./number-to-boolean.util";
2
2
  export * from "./record-keys-conversor.util";
3
3
  export * from "./element-map.util";
4
+ export * from "./process-rewards.util";
5
+ export * from "./process-price.util";
@@ -17,3 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./number-to-boolean.util"), exports);
18
18
  __exportStar(require("./record-keys-conversor.util"), exports);
19
19
  __exportStar(require("./element-map.util"), exports);
20
+ __exportStar(require("./process-rewards.util"), exports);
21
+ __exportStar(require("./process-price.util"), exports);
@@ -0,0 +1,4 @@
1
+ export declare function processPrice(price: Record<string, number>): {
2
+ type: string;
3
+ amount: number;
4
+ } | null;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processPrice = processPrice;
4
+ const enums_1 = require("../enums");
5
+ function processPrice(price) {
6
+ const keys = Object.keys(price);
7
+ if (keys.length === 0)
8
+ return null;
9
+ if (keys.length > 1) {
10
+ throw new Error(`Unexpected multiple price keys: ${JSON.stringify(price)}`);
11
+ }
12
+ const key = keys[0];
13
+ const amount = price[key];
14
+ const typeMap = {
15
+ [enums_1.CostType.Gold]: "gold",
16
+ [enums_1.CostType.Gem]: "gem",
17
+ };
18
+ if (!typeMap[key]) {
19
+ throw new Error(`Unexpected price key: ${key}`);
20
+ }
21
+ return {
22
+ type: typeMap[key],
23
+ amount: amount,
24
+ };
25
+ }
@@ -0,0 +1,17 @@
1
+ import { DragonElement } from "@dchighs/dc-core";
2
+ import { RewardAcronym } from "../enums/reward-acronym.enum";
3
+ import { RewardType } from "../enums/reward-type.enum";
4
+ type Reward = {
5
+ egg?: number | number[];
6
+ } & Omit<Partial<Record<RewardAcronym, number>>, "egg">;
7
+ type ProcessedReward = {
8
+ type: RewardType;
9
+ element?: DragonElement;
10
+ amount?: number;
11
+ chest_id?: number;
12
+ dragon_id?: number;
13
+ dragon_ids?: number[];
14
+ building_id?: number;
15
+ };
16
+ export declare function processRewards(rewards: Reward[]): ProcessedReward[];
17
+ export {};
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processRewards = processRewards;
4
+ const reward_type_enum_1 = require("../enums/reward-type.enum");
5
+ const element_map_util_1 = require("./element-map.util");
6
+ function processRewards(rewards) {
7
+ const processedRewards = [];
8
+ for (const reward of rewards) {
9
+ if (reward.chest) {
10
+ processedRewards.push({
11
+ type: reward_type_enum_1.RewardType.Chest,
12
+ chest_id: reward.chest,
13
+ });
14
+ }
15
+ if (reward.egg) {
16
+ if (Array.isArray(reward.egg)) {
17
+ processedRewards.push({
18
+ type: reward_type_enum_1.RewardType.Dragon,
19
+ dragon_ids: reward.egg,
20
+ });
21
+ }
22
+ else {
23
+ processedRewards.push({
24
+ type: reward_type_enum_1.RewardType.Dragon,
25
+ dragon_id: reward.egg,
26
+ });
27
+ }
28
+ }
29
+ if (reward.g) {
30
+ processedRewards.push({
31
+ type: reward_type_enum_1.RewardType.Gold,
32
+ amount: reward.g,
33
+ });
34
+ }
35
+ if (reward.c) {
36
+ processedRewards.push({
37
+ type: reward_type_enum_1.RewardType.Gem,
38
+ amount: reward.c,
39
+ });
40
+ }
41
+ if (reward.f) {
42
+ processedRewards.push({
43
+ type: reward_type_enum_1.RewardType.Gem,
44
+ amount: reward.c,
45
+ });
46
+ }
47
+ if (reward.b) {
48
+ processedRewards.push({
49
+ type: reward_type_enum_1.RewardType.Building,
50
+ building_id: reward.b,
51
+ });
52
+ }
53
+ if (Object.keys(reward).some(key => key.endsWith("_token"))) {
54
+ const key = Object.keys(reward).find(key => key.endsWith("_token"));
55
+ const elementAcronym = key === null || key === void 0 ? void 0 : key.split("_")[0];
56
+ if (!elementAcronym) {
57
+ throw new Error("Invalid reward");
58
+ }
59
+ processedRewards.push({
60
+ type: reward_type_enum_1.RewardType.HabitatToken,
61
+ element: element_map_util_1.elementMap[elementAcronym],
62
+ amount: reward[key],
63
+ });
64
+ }
65
+ }
66
+ return processedRewards;
67
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dchighs/dc-config-mapper",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "A opined library to restructure and populate configuration for Dragon City.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@dchighs/dc-config": "^0.0.1",
40
+ "@dchighs/dc-core": "^0.1.0",
40
41
  "@dchighs/dc-localization": "^0.0.4"
41
42
  }
42
43
  }