SVConfig.js
5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSVPointById = exports.getShareContent = exports.getSVConfigById = exports.initShareConfigV2 = exports.initShareConfig = exports.setNoRewaredAd = void 0;
const simba_httpclient_1 = require("simba-httpclient");
const simba_localstorage_1 = require("simba-localstorage");
const simba_random_1 = require("simba-random");
const SDKEvents_1 = require("./SDKEvents");
let configs = {};
let gameId;
let noRewardedAd = false;
function setNoRewaredAd() {
noRewardedAd = true;
}
exports.setNoRewaredAd = setNoRewaredAd;
function initShareConfig(SDKConfig) {
gameId = SDKConfig.gameId;
return new Promise(async (resolve, reject) => {
(new simba_httpclient_1.HttpClient(SDKConfig.shareConfigUrl)).get("").then((ret) => {
try {
configs = JSON.parse(ret);
for (let key in configs) {
if (configs[key]["ref"]) {
configs[key] = configs[configs[key]["ref"]];
}
}
resolve({});
}
catch (e) {
reject(e);
}
}).catch((e) => {
reject(e);
});
});
}
exports.initShareConfig = initShareConfig;
function initShareConfigV2(gId, url) {
gameId = gId;
return new Promise(async (resolve, reject) => {
(new simba_httpclient_1.HttpClient(url)).get("").then((ret) => {
try {
configs = JSON.parse(ret);
for (let key in configs) {
if (configs[key]["ref"]) {
configs[key] = configs[configs[key]["ref"]];
}
}
resolve({});
}
catch (e) {
reject(e);
}
}).catch((e) => {
reject(e);
});
});
}
exports.initShareConfigV2 = initShareConfigV2;
let svData;
function getSVConfigById(svPointId) {
return configs[svPointId];
}
exports.getSVConfigById = getSVConfigById;
function getShareContent(svPointId) {
let config = configs[svPointId];
if (config) {
function getTitleAndImage() {
let titleIdx = Math.floor(simba_random_1.Random.range(0, config.titles.length));
if (config.syncTitleAndImage) {
return { title: config.titles[titleIdx], imageUrl: config.imageUrls[titleIdx], urlId: config.imageUrls[titleIdx].urlId };
}
else {
let imageIdx = Math.floor(simba_random_1.Random.range(0, config.imageUrls.length));
return { title: config.titles[titleIdx], imageUrl: config.imageUrls[imageIdx], urlId: config.imageUrls[titleIdx].urlId };
}
}
return Object.assign({}, getTitleAndImage());
}
throw new Error("Invalid share point " + svPointId);
}
exports.getShareContent = getShareContent;
function getSVPointById(svPointId, forceShare) {
let config = configs[svPointId];
if (config) {
// function getTitleAndImage() {
// let titleIdx = Math.floor(Random.range(0, config.titles.length));
// if (config.syncTitleAndImage) {
// return { title: config.titles[titleIdx], imageUrl: config.imageUrls[titleIdx] };
// } else {
// let imageIdx = Math.floor(Random.range(0, config.imageUrls.length));
// return { title: config.titles[titleIdx], imageUrl: config.imageUrls[imageIdx] };
// }
// }
let percent = forceShare ? 100 : config.sharePercent;
if (config.sharePercents.length && !forceShare) {
svData = svData || simba_localstorage_1.LocalStorage.getObject(gameId + "-sv-data", {});
let count = 0;
if (!svData[svPointId]) {
svData[svPointId].count = 0;
}
count = svData[svPointId].count;
if (count < config.sharePercents.length) {
percent = config.sharePercents[count];
svData[svPointId].count = count + 1;
simba_localstorage_1.LocalStorage.setObject(gameId + "-sv-data", svData);
}
}
if (noRewardedAd) {
if (config.disableShareFallback) {
SDKEvents_1.SDKEvents.SDKError.emit(0 /* NO_REWARDED_VIDEO_AVAILABLE */);
return undefined;
}
percent = 100;
}
if (percent === 0) {
return { id: svPointId, type: "video", disableShareFallback: config.disableShareFallback };
}
else if (percent === 100) {
return { id: svPointId, type: "share" };
}
else {
let p = simba_random_1.Random.range(0, 100);
if (p < percent) {
return { id: svPointId, type: "share" };
}
else {
return { id: svPointId, type: "video" };
}
}
}
else {
throw new Error("Invalid share/video point " + svPointId);
}
}
exports.getSVPointById = getSVPointById;