SVConfig.js 5.02 KB
"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;