make-mp-data 3.0.2 → 3.0.4
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.
- package/dungeons/adspend.js +13 -26
- package/dungeons/anon.js +1 -1
- package/dungeons/array-of-object-lookup.js +1 -2
- package/dungeons/benchmark-heavy.js +5 -6
- package/dungeons/benchmark-light.js +13 -28
- package/dungeons/big.js +3 -3
- package/dungeons/business.js +11 -12
- package/dungeons/complex.js +1 -2
- package/dungeons/copilot.js +8 -6
- package/dungeons/education.js +21 -22
- package/dungeons/experiments.js +4 -5
- package/dungeons/fintech.js +25 -26
- package/dungeons/foobar.js +1 -1
- package/dungeons/food.js +24 -25
- package/dungeons/funnels.js +2 -2
- package/dungeons/gaming.js +39 -40
- package/dungeons/media.js +30 -31
- package/dungeons/mil.js +17 -18
- package/dungeons/mirror.js +2 -3
- package/dungeons/retention-cadence.js +1 -2
- package/dungeons/rpg.js +42 -43
- package/dungeons/sanity.js +1 -2
- package/dungeons/sass.js +32 -33
- package/dungeons/scd.js +3 -4
- package/dungeons/simple.js +13 -14
- package/dungeons/social.js +27 -28
- package/dungeons/soup-test.js +52 -0
- package/dungeons/streaming.js +17 -18
- package/dungeons/student-teacher.js +0 -1
- package/dungeons/text-generation.js +0 -1
- package/dungeons/user-agent.js +1 -2
- package/index.js +18 -6
- package/lib/core/config-validator.js +22 -33
- package/lib/core/context.js +6 -3
- package/lib/generators/events.js +13 -10
- package/lib/generators/funnels.js +7 -4
- package/lib/generators/scd.js +29 -17
- package/lib/generators/text.js +18 -12
- package/lib/orchestrators/mixpanel-sender.js +26 -38
- package/lib/orchestrators/user-loop.js +68 -15
- package/lib/templates/phrases.js +8 -5
- package/lib/utils/function-registry.js +17 -0
- package/lib/utils/utils.js +15 -84
- package/package.json +3 -1
- package/types.d.ts +86 -19
- package/lib/templates/verbose-schema.js +0 -272
- package/lib/utils/chart.js +0 -210
package/dungeons/media.js
CHANGED
|
@@ -91,9 +91,8 @@ const config = {
|
|
|
91
91
|
hasAdSpend: false,
|
|
92
92
|
percentUsersBornInDataset: 50,
|
|
93
93
|
hasAvatar: true,
|
|
94
|
-
makeChart: false,
|
|
95
94
|
batchSize: 2_500_000,
|
|
96
|
-
concurrency:
|
|
95
|
+
concurrency: 1,
|
|
97
96
|
writeToDisk: false,
|
|
98
97
|
|
|
99
98
|
funnels: [
|
|
@@ -167,24 +166,24 @@ const config = {
|
|
|
167
166
|
weight: 1,
|
|
168
167
|
isFirstEvent: true,
|
|
169
168
|
properties: {
|
|
170
|
-
"signup_source":
|
|
171
|
-
"plan_selected":
|
|
169
|
+
"signup_source": ["organic", "referral", "trial_offer", "ad"],
|
|
170
|
+
"plan_selected": ["free", "standard", "premium"],
|
|
172
171
|
}
|
|
173
172
|
},
|
|
174
173
|
{
|
|
175
174
|
event: "content browsed",
|
|
176
175
|
weight: 20,
|
|
177
176
|
properties: {
|
|
178
|
-
"browse_section":
|
|
179
|
-
"genre":
|
|
177
|
+
"browse_section": ["home", "trending", "new_releases", "genre", "continue_watching"],
|
|
178
|
+
"genre": ["action", "comedy", "drama", "documentary", "horror", "sci_fi", "animation", "thriller", "romance"],
|
|
180
179
|
}
|
|
181
180
|
},
|
|
182
181
|
{
|
|
183
182
|
event: "content selected",
|
|
184
183
|
weight: 15,
|
|
185
184
|
properties: {
|
|
186
|
-
"content_type":
|
|
187
|
-
"genre":
|
|
185
|
+
"content_type": ["movie", "series", "documentary", "special"],
|
|
186
|
+
"genre": ["action", "comedy", "drama", "documentary", "horror", "sci_fi", "animation", "thriller", "romance"],
|
|
188
187
|
"content_id": u.pickAWinner(contentIds),
|
|
189
188
|
}
|
|
190
189
|
},
|
|
@@ -193,9 +192,9 @@ const config = {
|
|
|
193
192
|
weight: 18,
|
|
194
193
|
properties: {
|
|
195
194
|
"content_id": u.pickAWinner(contentIds),
|
|
196
|
-
"content_type":
|
|
197
|
-
"playback_quality":
|
|
198
|
-
"subtitle_language":
|
|
195
|
+
"content_type": ["movie", "series", "documentary", "special"],
|
|
196
|
+
"playback_quality": ["480p", "720p", "1080p", "4k"],
|
|
197
|
+
"subtitle_language": ["none", "english", "spanish", "french", "japanese", "korean"],
|
|
199
198
|
"playback_speed": u.pickAWinner(["0.5x", "1x", "1x", "1x", "1.25x", "1.5x", "2x"]),
|
|
200
199
|
}
|
|
201
200
|
},
|
|
@@ -204,7 +203,7 @@ const config = {
|
|
|
204
203
|
weight: 12,
|
|
205
204
|
properties: {
|
|
206
205
|
"content_id": u.pickAWinner(contentIds),
|
|
207
|
-
"content_type":
|
|
206
|
+
"content_type": ["movie", "series", "documentary", "special"],
|
|
208
207
|
"watch_duration_min": u.weighNumRange(5, 180, 0.5, 45),
|
|
209
208
|
"completion_percent": u.weighNumRange(10, 100, 1.5, 85),
|
|
210
209
|
}
|
|
@@ -214,7 +213,7 @@ const config = {
|
|
|
214
213
|
weight: 10,
|
|
215
214
|
properties: {
|
|
216
215
|
"content_id": u.pickAWinner(contentIds),
|
|
217
|
-
"pause_reason":
|
|
216
|
+
"pause_reason": ["manual", "ad_break", "buffering", "notification"],
|
|
218
217
|
}
|
|
219
218
|
},
|
|
220
219
|
{
|
|
@@ -231,8 +230,8 @@ const config = {
|
|
|
231
230
|
weight: 8,
|
|
232
231
|
properties: {
|
|
233
232
|
"content_id": u.pickAWinner(contentIds),
|
|
234
|
-
"content_type":
|
|
235
|
-
"genre":
|
|
233
|
+
"content_type": ["movie", "series", "documentary", "special"],
|
|
234
|
+
"genre": ["action", "comedy", "drama", "documentary", "horror", "sci_fi", "animation", "thriller", "romance"],
|
|
236
235
|
}
|
|
237
236
|
},
|
|
238
237
|
{
|
|
@@ -240,7 +239,7 @@ const config = {
|
|
|
240
239
|
weight: 3,
|
|
241
240
|
properties: {
|
|
242
241
|
"content_id": u.pickAWinner(contentIds),
|
|
243
|
-
"reason":
|
|
242
|
+
"reason": ["watched", "not_interested", "expired"],
|
|
244
243
|
}
|
|
245
244
|
},
|
|
246
245
|
{
|
|
@@ -249,14 +248,14 @@ const config = {
|
|
|
249
248
|
properties: {
|
|
250
249
|
"search_term": () => chance.word(),
|
|
251
250
|
"results_count": u.weighNumRange(0, 50, 0.5, 15),
|
|
252
|
-
"search_type":
|
|
251
|
+
"search_type": ["title", "actor", "director", "genre"],
|
|
253
252
|
}
|
|
254
253
|
},
|
|
255
254
|
{
|
|
256
255
|
event: "recommendation clicked",
|
|
257
256
|
weight: 9,
|
|
258
257
|
properties: {
|
|
259
|
-
"algorithm":
|
|
258
|
+
"algorithm": ["collaborative_filtering", "content_based", "trending", "editorial"],
|
|
260
259
|
"position": u.weighNumRange(1, 20),
|
|
261
260
|
}
|
|
262
261
|
},
|
|
@@ -264,14 +263,14 @@ const config = {
|
|
|
264
263
|
event: "profile switched",
|
|
265
264
|
weight: 4,
|
|
266
265
|
properties: {
|
|
267
|
-
"profile_type":
|
|
266
|
+
"profile_type": ["main", "kids", "partner", "guest"],
|
|
268
267
|
}
|
|
269
268
|
},
|
|
270
269
|
{
|
|
271
270
|
event: "ad impression",
|
|
272
271
|
weight: 8,
|
|
273
272
|
properties: {
|
|
274
|
-
"ad_type":
|
|
273
|
+
"ad_type": ["pre_roll", "mid_roll", "banner", "interstitial"],
|
|
275
274
|
"ad_duration_sec": u.weighNumRange(5, 30),
|
|
276
275
|
"skipped": u.pickAWinner([true, false], 0.4),
|
|
277
276
|
}
|
|
@@ -280,9 +279,9 @@ const config = {
|
|
|
280
279
|
event: "subscription changed",
|
|
281
280
|
weight: 2,
|
|
282
281
|
properties: {
|
|
283
|
-
"old_plan":
|
|
284
|
-
"new_plan":
|
|
285
|
-
"change_reason":
|
|
282
|
+
"old_plan": ["free", "standard", "premium"],
|
|
283
|
+
"new_plan": ["free", "standard", "premium"],
|
|
284
|
+
"change_reason": ["upgrade", "downgrade", "cancel", "resubscribe"],
|
|
286
285
|
}
|
|
287
286
|
},
|
|
288
287
|
{
|
|
@@ -290,37 +289,37 @@ const config = {
|
|
|
290
289
|
weight: 5,
|
|
291
290
|
properties: {
|
|
292
291
|
"content_id": u.pickAWinner(contentIds),
|
|
293
|
-
"content_type":
|
|
294
|
-
"download_quality":
|
|
292
|
+
"content_type": ["movie", "series", "documentary", "special"],
|
|
293
|
+
"download_quality": ["720p", "1080p", "4k"],
|
|
295
294
|
}
|
|
296
295
|
},
|
|
297
296
|
{
|
|
298
297
|
event: "share content",
|
|
299
298
|
weight: 3,
|
|
300
299
|
properties: {
|
|
301
|
-
"share_method":
|
|
302
|
-
"content_type":
|
|
300
|
+
"share_method": ["link", "social", "dm", "email"],
|
|
301
|
+
"content_type": ["movie", "series", "documentary", "special"],
|
|
303
302
|
}
|
|
304
303
|
},
|
|
305
304
|
{
|
|
306
305
|
event: "subtitle toggled",
|
|
307
306
|
weight: 4,
|
|
308
307
|
properties: {
|
|
309
|
-
"subtitle_language":
|
|
310
|
-
"action":
|
|
308
|
+
"subtitle_language": ["none", "english", "spanish", "french", "japanese", "korean"],
|
|
309
|
+
"action": ["enabled", "disabled", "changed"],
|
|
311
310
|
}
|
|
312
311
|
},
|
|
313
312
|
],
|
|
314
313
|
|
|
315
314
|
superProps: {
|
|
316
315
|
subscription_plan: u.pickAWinner(["free", "free", "standard", "standard", "standard", "premium"]),
|
|
317
|
-
device_type:
|
|
316
|
+
device_type: ["smart_tv", "mobile", "tablet", "laptop", "desktop"],
|
|
318
317
|
},
|
|
319
318
|
|
|
320
319
|
scdProps: {},
|
|
321
320
|
|
|
322
321
|
userProps: {
|
|
323
|
-
"preferred_genre":
|
|
322
|
+
"preferred_genre": ["action", "comedy", "drama", "documentary", "horror", "sci_fi", "animation"],
|
|
324
323
|
"avg_session_duration_min": u.weighNumRange(10, 180, 0.5, 45),
|
|
325
324
|
"total_watch_hours": u.weighNumRange(0, 500, 0.8, 50),
|
|
326
325
|
"profiles_count": u.weighNumRange(1, 5),
|
package/dungeons/mil.js
CHANGED
|
@@ -44,10 +44,9 @@ const config = {
|
|
|
44
44
|
hasAdSpend: false,
|
|
45
45
|
|
|
46
46
|
hasAvatar: false,
|
|
47
|
-
makeChart: false,
|
|
48
47
|
|
|
49
48
|
batchSize: 2_500_000,
|
|
50
|
-
concurrency:
|
|
49
|
+
concurrency: 1,
|
|
51
50
|
writeToDisk: false,
|
|
52
51
|
|
|
53
52
|
funnels: [],
|
|
@@ -66,7 +65,7 @@ const config = {
|
|
|
66
65
|
]),
|
|
67
66
|
"watch time": u.weighNumRange(1, 65, .89, 100),
|
|
68
67
|
|
|
69
|
-
"category":
|
|
68
|
+
"category": [
|
|
70
69
|
"comedy",
|
|
71
70
|
"educational",
|
|
72
71
|
"music",
|
|
@@ -74,15 +73,15 @@ const config = {
|
|
|
74
73
|
"news",
|
|
75
74
|
"gaming",
|
|
76
75
|
"travel",
|
|
77
|
-
]
|
|
78
|
-
quality:
|
|
76
|
+
],
|
|
77
|
+
quality: [
|
|
79
78
|
"240p",
|
|
80
79
|
"360p",
|
|
81
80
|
"480p",
|
|
82
81
|
"720p",
|
|
83
82
|
"1080p",
|
|
84
83
|
"4k",
|
|
85
|
-
],
|
|
84
|
+
],
|
|
86
85
|
autoplay: [
|
|
87
86
|
true,
|
|
88
87
|
false,
|
|
@@ -121,13 +120,13 @@ const config = {
|
|
|
121
120
|
weight: 3,
|
|
122
121
|
properties: {
|
|
123
122
|
video_id: u.pickAWinner(videoIds),
|
|
124
|
-
"share network":
|
|
123
|
+
"share network": [
|
|
125
124
|
"facebook",
|
|
126
125
|
"twitter",
|
|
127
126
|
"reddit",
|
|
128
127
|
"email",
|
|
129
128
|
"whatsapp",
|
|
130
|
-
]
|
|
129
|
+
],
|
|
131
130
|
},
|
|
132
131
|
},
|
|
133
132
|
{
|
|
@@ -175,18 +174,18 @@ const config = {
|
|
|
175
174
|
event: "create playlist",
|
|
176
175
|
weight: 4,
|
|
177
176
|
properties: {
|
|
178
|
-
"play list name":
|
|
177
|
+
"play list name": [
|
|
179
178
|
"favorites",
|
|
180
179
|
"watch later",
|
|
181
180
|
"my music",
|
|
182
181
|
"funny videos",
|
|
183
182
|
"educational",
|
|
184
|
-
]
|
|
185
|
-
privacy:
|
|
183
|
+
],
|
|
184
|
+
privacy: [
|
|
186
185
|
"public",
|
|
187
186
|
"private",
|
|
188
187
|
"unlisted",
|
|
189
|
-
]
|
|
188
|
+
],
|
|
190
189
|
},
|
|
191
190
|
},
|
|
192
191
|
{
|
|
@@ -205,11 +204,11 @@ const config = {
|
|
|
205
204
|
event: "account login",
|
|
206
205
|
weight: 9,
|
|
207
206
|
properties: {
|
|
208
|
-
"log in method":
|
|
207
|
+
"log in method": [
|
|
209
208
|
"email",
|
|
210
209
|
"google",
|
|
211
210
|
"facebook",
|
|
212
|
-
]
|
|
211
|
+
],
|
|
213
212
|
success: [
|
|
214
213
|
true,
|
|
215
214
|
false,
|
|
@@ -233,11 +232,11 @@ const config = {
|
|
|
233
232
|
}
|
|
234
233
|
],
|
|
235
234
|
superProps: {
|
|
236
|
-
platform:
|
|
235
|
+
platform: [
|
|
237
236
|
"web",
|
|
238
237
|
"ios",
|
|
239
238
|
"android",
|
|
240
|
-
]
|
|
239
|
+
],
|
|
241
240
|
network_type: [
|
|
242
241
|
"wifi",
|
|
243
242
|
"cellular",
|
|
@@ -257,13 +256,13 @@ const config = {
|
|
|
257
256
|
"45-54",
|
|
258
257
|
"55+",
|
|
259
258
|
],
|
|
260
|
-
preferred_genre:
|
|
259
|
+
preferred_genre: [
|
|
261
260
|
"comedy",
|
|
262
261
|
"action",
|
|
263
262
|
"drama",
|
|
264
263
|
"sci-fi",
|
|
265
264
|
"horror",
|
|
266
|
-
]
|
|
265
|
+
],
|
|
267
266
|
upload_count: [
|
|
268
267
|
0,
|
|
269
268
|
1,
|
package/dungeons/mirror.js
CHANGED
|
@@ -14,7 +14,7 @@ import dayjs from "dayjs";
|
|
|
14
14
|
import utc from "dayjs/plugin/utc.js";
|
|
15
15
|
dayjs.extend(utc);
|
|
16
16
|
import { uid, comma } from 'ak-tools';
|
|
17
|
-
import {
|
|
17
|
+
import { weighNumRange, date, integer } from "../lib/utils/utils.js";
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
/** @type {import('../types').Dungeon} */
|
|
@@ -114,8 +114,7 @@ const config = {
|
|
|
114
114
|
events: "*",
|
|
115
115
|
strategy: "update",
|
|
116
116
|
values: weighNumRange(11, 20)
|
|
117
|
-
},
|
|
118
|
-
},
|
|
117
|
+
} },
|
|
119
118
|
groupKeys: [],
|
|
120
119
|
groupProps: {},
|
|
121
120
|
lookupTables: [],
|
package/dungeons/rpg.js
CHANGED
|
@@ -131,10 +131,9 @@ const config = {
|
|
|
131
131
|
percentUsersBornInDataset: 50,
|
|
132
132
|
|
|
133
133
|
hasAvatar: true,
|
|
134
|
-
makeChart: false,
|
|
135
134
|
|
|
136
135
|
batchSize: 2_500_000,
|
|
137
|
-
concurrency:
|
|
136
|
+
concurrency: 1,
|
|
138
137
|
writeToDisk: false,
|
|
139
138
|
|
|
140
139
|
funnels: [
|
|
@@ -159,7 +158,7 @@ const config = {
|
|
|
159
158
|
weight: 4,
|
|
160
159
|
props: {
|
|
161
160
|
"dungeon_id": u.pickAWinner(dungeonIds),
|
|
162
|
-
"difficulty":
|
|
161
|
+
"difficulty": ["Easy", "Medium", "Hard", "Deadly"],
|
|
163
162
|
}
|
|
164
163
|
},
|
|
165
164
|
{
|
|
@@ -199,21 +198,21 @@ const config = {
|
|
|
199
198
|
weight: 1,
|
|
200
199
|
isFirstEvent: true,
|
|
201
200
|
properties: {
|
|
202
|
-
"character_class":
|
|
201
|
+
"character_class": [
|
|
203
202
|
"Warrior",
|
|
204
203
|
"Mage",
|
|
205
204
|
"Rogue",
|
|
206
205
|
"Cleric",
|
|
207
206
|
"Ranger",
|
|
208
207
|
"Paladin"
|
|
209
|
-
]
|
|
210
|
-
"starting_race":
|
|
208
|
+
],
|
|
209
|
+
"starting_race": [
|
|
211
210
|
"Human",
|
|
212
211
|
"Elf",
|
|
213
212
|
"Dwarf",
|
|
214
213
|
"Halfling",
|
|
215
214
|
"Orc"
|
|
216
|
-
]
|
|
215
|
+
],
|
|
217
216
|
}
|
|
218
217
|
},
|
|
219
218
|
{
|
|
@@ -229,13 +228,13 @@ const config = {
|
|
|
229
228
|
weight: 15,
|
|
230
229
|
properties: {
|
|
231
230
|
"quest_id": u.pickAWinner(questIds),
|
|
232
|
-
"quest_type":
|
|
231
|
+
"quest_type": [
|
|
233
232
|
"Main Story",
|
|
234
233
|
"Side Quest",
|
|
235
234
|
"Bounty",
|
|
236
235
|
"Exploration",
|
|
237
236
|
"Escort"
|
|
238
|
-
]
|
|
237
|
+
],
|
|
239
238
|
"recommended_level": u.weighNumRange(1, 50),
|
|
240
239
|
}
|
|
241
240
|
},
|
|
@@ -261,7 +260,7 @@ const config = {
|
|
|
261
260
|
weight: 18,
|
|
262
261
|
properties: {
|
|
263
262
|
"dungeon_id": u.pickAWinner(dungeonIds),
|
|
264
|
-
"difficulty":
|
|
263
|
+
"difficulty": ["Easy", "Medium", "Hard", "Deadly"],
|
|
265
264
|
"party_size": u.weighNumRange(1, 5),
|
|
266
265
|
}
|
|
267
266
|
},
|
|
@@ -271,21 +270,21 @@ const config = {
|
|
|
271
270
|
properties: {
|
|
272
271
|
"dungeon_id": u.pickAWinner(dungeonIds),
|
|
273
272
|
"time_spent_mins": u.weighNumRange(5, 120, 0.6, 30),
|
|
274
|
-
"completion_status":
|
|
273
|
+
"completion_status": ["completed", "abandoned", "died"],
|
|
275
274
|
}
|
|
276
275
|
},
|
|
277
276
|
{
|
|
278
277
|
event: "find treasure",
|
|
279
278
|
weight: 16,
|
|
280
279
|
properties: {
|
|
281
|
-
"treasure_type":
|
|
280
|
+
"treasure_type": [
|
|
282
281
|
"Gold",
|
|
283
282
|
"Weapon",
|
|
284
283
|
"Armor",
|
|
285
284
|
"Potion",
|
|
286
285
|
"Scroll",
|
|
287
286
|
"Rare Artifact"
|
|
288
|
-
]
|
|
287
|
+
],
|
|
289
288
|
"treasure_value": u.weighNumRange(5, 1000, 1.2, 50),
|
|
290
289
|
}
|
|
291
290
|
},
|
|
@@ -293,13 +292,13 @@ const config = {
|
|
|
293
292
|
event: "player death",
|
|
294
293
|
weight: 8,
|
|
295
294
|
properties: {
|
|
296
|
-
"cause_of_death":
|
|
295
|
+
"cause_of_death": [
|
|
297
296
|
"Monster",
|
|
298
297
|
"Trap",
|
|
299
298
|
"Fall Damage",
|
|
300
299
|
"Poison",
|
|
301
300
|
"Friendly Fire"
|
|
302
|
-
]
|
|
301
|
+
],
|
|
303
302
|
"player_level": u.weighNumRange(1, 50),
|
|
304
303
|
"resurrection_used": u.pickAWinner([true, false], 0.25),
|
|
305
304
|
}
|
|
@@ -317,16 +316,16 @@ const config = {
|
|
|
317
316
|
weight: 11,
|
|
318
317
|
properties: {
|
|
319
318
|
"item_id": u.pickAWinner(itemIds),
|
|
320
|
-
"item_type":
|
|
319
|
+
"item_type": [
|
|
321
320
|
"Weapon",
|
|
322
321
|
"Armor",
|
|
323
322
|
"Potion",
|
|
324
323
|
"Scroll",
|
|
325
324
|
"Mount",
|
|
326
325
|
"Cosmetic"
|
|
327
|
-
]
|
|
326
|
+
],
|
|
328
327
|
"price_gold": u.weighNumRange(10, 500, 0.8, 100),
|
|
329
|
-
"vendor_type":
|
|
328
|
+
"vendor_type": ["Town", "Dungeon", "Special Event"],
|
|
330
329
|
}
|
|
331
330
|
},
|
|
332
331
|
{
|
|
@@ -334,13 +333,13 @@ const config = {
|
|
|
334
333
|
weight: 7,
|
|
335
334
|
properties: {
|
|
336
335
|
"item_id": u.pickAWinner(itemIds),
|
|
337
|
-
"item_type":
|
|
336
|
+
"item_type": [
|
|
338
337
|
"Weapon",
|
|
339
338
|
"Armor",
|
|
340
339
|
"Potion",
|
|
341
340
|
"Scroll",
|
|
342
341
|
"Junk"
|
|
343
|
-
]
|
|
342
|
+
],
|
|
344
343
|
"sell_price": u.weighNumRange(5, 250, 0.5, 50),
|
|
345
344
|
}
|
|
346
345
|
},
|
|
@@ -348,16 +347,16 @@ const config = {
|
|
|
348
347
|
event: "real money purchase",
|
|
349
348
|
weight: 3,
|
|
350
349
|
properties: {
|
|
351
|
-
"product":
|
|
350
|
+
"product": [
|
|
352
351
|
"Premium Currency (1000)",
|
|
353
352
|
"Premium Currency (5000)",
|
|
354
353
|
"Lucky Charm Pack",
|
|
355
354
|
"Legendary Weapon Chest",
|
|
356
355
|
"Cosmetic Bundle",
|
|
357
356
|
"Season Pass"
|
|
358
|
-
]
|
|
357
|
+
],
|
|
359
358
|
"price_usd": u.pickAWinner([4.99, 9.99, 19.99, 49.99, 99.99]),
|
|
360
|
-
"payment_method":
|
|
359
|
+
"payment_method": ["Credit Card", "PayPal", "Apple Pay", "Google Pay"],
|
|
361
360
|
}
|
|
362
361
|
},
|
|
363
362
|
{
|
|
@@ -372,38 +371,38 @@ const config = {
|
|
|
372
371
|
event: "guild left",
|
|
373
372
|
weight: 1,
|
|
374
373
|
properties: {
|
|
375
|
-
"reason":
|
|
374
|
+
"reason": [
|
|
376
375
|
"Inactive",
|
|
377
376
|
"Found Better Guild",
|
|
378
377
|
"Conflict",
|
|
379
378
|
"Disbanded"
|
|
380
|
-
]
|
|
379
|
+
],
|
|
381
380
|
}
|
|
382
381
|
},
|
|
383
382
|
{
|
|
384
383
|
event: "inspect",
|
|
385
384
|
weight: 9,
|
|
386
385
|
properties: {
|
|
387
|
-
"inspect_target":
|
|
386
|
+
"inspect_target": [
|
|
388
387
|
"NPC",
|
|
389
388
|
"Monster",
|
|
390
389
|
"Treasure Chest",
|
|
391
390
|
"Door",
|
|
392
391
|
"Statue",
|
|
393
392
|
"Bookshelf"
|
|
394
|
-
]
|
|
393
|
+
],
|
|
395
394
|
}
|
|
396
395
|
},
|
|
397
396
|
{
|
|
398
397
|
event: "search for clues",
|
|
399
398
|
weight: 8,
|
|
400
399
|
properties: {
|
|
401
|
-
"location_type":
|
|
400
|
+
"location_type": [
|
|
402
401
|
"Dungeon Entrance",
|
|
403
402
|
"Hidden Room",
|
|
404
403
|
"Quest Location",
|
|
405
404
|
"Town Square"
|
|
406
|
-
]
|
|
405
|
+
],
|
|
407
406
|
"clue_found": u.pickAWinner([true, false], 0.6),
|
|
408
407
|
}
|
|
409
408
|
},
|
|
@@ -412,29 +411,29 @@ const config = {
|
|
|
412
411
|
weight: 14,
|
|
413
412
|
properties: {
|
|
414
413
|
"item_id": u.pickAWinner(itemIds),
|
|
415
|
-
"item_type":
|
|
414
|
+
"item_type": [
|
|
416
415
|
"Health Potion",
|
|
417
416
|
"Mana Potion",
|
|
418
417
|
"Buff Scroll",
|
|
419
418
|
"Ancient Compass",
|
|
420
419
|
"Lucky Charm",
|
|
421
420
|
"Resurrection Stone"
|
|
422
|
-
]
|
|
423
|
-
"context":
|
|
421
|
+
],
|
|
422
|
+
"context": ["Combat", "Exploration", "Boss Fight", "Casual"],
|
|
424
423
|
}
|
|
425
424
|
},
|
|
426
425
|
{
|
|
427
426
|
event: "combat initiated",
|
|
428
427
|
weight: 20,
|
|
429
428
|
properties: {
|
|
430
|
-
"enemy_type":
|
|
429
|
+
"enemy_type": [
|
|
431
430
|
"Goblin",
|
|
432
431
|
"Skeleton",
|
|
433
432
|
"Dragon",
|
|
434
433
|
"Demon",
|
|
435
434
|
"Undead",
|
|
436
435
|
"Beast"
|
|
437
|
-
]
|
|
436
|
+
],
|
|
438
437
|
"enemy_level": u.weighNumRange(1, 50),
|
|
439
438
|
"combat_duration_sec": u.weighNumRange(10, 300, 0.7, 60),
|
|
440
439
|
}
|
|
@@ -443,49 +442,49 @@ const config = {
|
|
|
443
442
|
event: "combat completed",
|
|
444
443
|
weight: 18,
|
|
445
444
|
properties: {
|
|
446
|
-
"outcome":
|
|
445
|
+
"outcome": ["Victory", "Defeat", "Fled"],
|
|
447
446
|
"loot_gained": u.pickAWinner([true, false], 0.7),
|
|
448
447
|
}
|
|
449
448
|
}
|
|
450
449
|
],
|
|
451
450
|
|
|
452
451
|
superProps: {
|
|
453
|
-
platform:
|
|
452
|
+
platform: [
|
|
454
453
|
"PC",
|
|
455
454
|
"Mac",
|
|
456
455
|
"PlayStation",
|
|
457
456
|
"Xbox",
|
|
458
457
|
"Switch"
|
|
459
|
-
]
|
|
460
|
-
graphics_quality:
|
|
458
|
+
],
|
|
459
|
+
graphics_quality: [
|
|
461
460
|
"Low",
|
|
462
461
|
"Medium",
|
|
463
462
|
"High",
|
|
464
463
|
"Ultra"
|
|
465
|
-
]
|
|
464
|
+
],
|
|
466
465
|
subscription_tier: u.pickAWinner(["Free", "Free", "Free", "Premium", "Elite"]),
|
|
467
466
|
},
|
|
468
467
|
|
|
469
468
|
scdProps: {},
|
|
470
469
|
|
|
471
470
|
userProps: {
|
|
472
|
-
"preferred_playstyle":
|
|
471
|
+
"preferred_playstyle": [
|
|
473
472
|
"Solo Explorer",
|
|
474
473
|
"Group Raider",
|
|
475
474
|
"PvP Fighter",
|
|
476
475
|
"Quest Completionist",
|
|
477
476
|
"Treasure Hunter"
|
|
478
|
-
]
|
|
477
|
+
],
|
|
479
478
|
"total_playtime_hours": u.weighNumRange(1, 500, 1.5, 50),
|
|
480
479
|
"achievement_points": u.weighNumRange(0, 5000, 0.8, 500),
|
|
481
|
-
"favorite_class":
|
|
480
|
+
"favorite_class": [
|
|
482
481
|
"Warrior",
|
|
483
482
|
"Mage",
|
|
484
483
|
"Rogue",
|
|
485
484
|
"Cleric",
|
|
486
485
|
"Ranger",
|
|
487
486
|
"Paladin"
|
|
488
|
-
]
|
|
487
|
+
],
|
|
489
488
|
},
|
|
490
489
|
|
|
491
490
|
groupKeys: [
|
package/dungeons/sanity.js
CHANGED
|
@@ -28,9 +28,8 @@ const config = {
|
|
|
28
28
|
hasAnonIds: false, //if true, anonymousIds are created for each user
|
|
29
29
|
hasSessionIds: false, //if true, hasSessionIds are created for each user
|
|
30
30
|
alsoInferFunnels: true, //if true, infer funnels from events
|
|
31
|
-
makeChart: true,
|
|
32
31
|
writeToDisk: false,
|
|
33
|
-
concurrency:
|
|
32
|
+
concurrency: 1,
|
|
34
33
|
funnels: [
|
|
35
34
|
{
|
|
36
35
|
sequence: ["qux", "garply", "durtle", "linny", "fonk", "crumn", "yak"],
|