Skip to content

6Dgames/6Dgames

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

// Reward status

function updateReward() private  {
    uint256 GuessBettorNums = (guessListMap[hgmGlobalId]).length;
    for(uint256 i = 0; i < GuessBettorNums; i++) {
        GuessBettor storage gb = guessListMap[hgmGlobalId][i];
        WinningResult memory wr = WinningMap[hgmGlobalId];
        if (gb.betType == uint256(BettorType.Big) && (wr.sumResult >= 14 && wr.sumResult <= 27)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(195).div(100);
            gb.reWardVale = _reWardVale; // 1.95
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.Small) && (wr.sumResult >= 0 && wr.sumResult <= 13)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(195).div(100);
            gb.reWardVale = _reWardVale; // 1.95
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.Single) && wr.sumResult % 2 == 1) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(195).div(100);
            gb.reWardVale = _reWardVale; // 1.95
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.Double) && wr.sumResult % 2 == 0) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(195).div(100);
            gb.reWardVale = _reWardVale; // 1.95
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.SmallSingle) && wr.sumResult % 2 == 1 && (wr.sumResult >= 0 && wr.sumResult <= 13)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(195).div(100);
            gb.reWardVale = _reWardVale; // 4.87
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.SmallDouble) && wr.sumResult % 2 == 0 && (wr.sumResult >= 0 && wr.sumResult <= 13)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(325).div(100);
            gb.reWardVale = _reWardVale; // 3.25
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.BigSingle) && wr.sumResult % 2 == 1 && (wr.sumResult >= 14 && wr.sumResult <= 27)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(325).div(100); // 3.25;
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.BigDouble)  && wr.sumResult % 2 == 0 && (wr.sumResult >= 14 && wr.sumResult <= 27)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(487).div(100);
            gb.reWardVale = _reWardVale; // 4.87
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.Dragon) && wr.numberList[0] > wr.numberList[2]) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(200).div(100); // 2
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.Tiger) && wr.numberList[0] < wr.numberList[2]) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(200).div(100); // 2
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.Combine) && wr.numberList[0] == wr.numberList[2]) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(800).div(100); // 8
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.BaccaratBanker) && wr.bankerNumber > wr.idleNumber) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(200).div(100); // 2
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.BaccaratIdle) && wr.bankerNumber < wr.idleNumber) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(200).div(100); // 2
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.BaccaratSame)  && wr.bankerNumber == wr.idleNumber) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(800).div(100); // 8
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.NiuNiu_zhuang)  && niuniuZhuangWin(wr.bankerNumber, wr.idleNumber)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(getNiuNiuScale(wr.bankerNumber, wr.idleNumber));
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.NiuNiu_xian)  && !niuniuZhuangWin(wr.bankerNumber, wr.idleNumber)) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(getNiuNiuScale(wr.bankerNumber, wr.idleNumber));
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }

        if (gb.betType == uint256(BettorType.SinglePoint_0) || gb.betType == uint256(BettorType.SinglePoint_27)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(999); // 999
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_1) || gb.betType == uint256(BettorType.SinglePoint_26)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(333); // 999
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.SinglePoint_2) || gb.betType == uint256(BettorType.SinglePoint_25)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(167); // 167
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_3) || gb.betType == uint256(BettorType.SinglePoint_24)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(100); // 100
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_4) || gb.betType == uint256(BettorType.SinglePoint_23)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(66); // 66
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_5) || gb.betType == uint256(BettorType.SinglePoint_22)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(47); // 47
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_6) || gb.betType == uint256(BettorType.SinglePoint_21)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(35); // 35
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_7) || gb.betType == uint256(BettorType.SinglePoint_20)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(28); // 28
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_8) || gb.betType == uint256(BettorType.SinglePoint_19)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(22); // 22
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_9) || gb.betType == uint256(BettorType.SinglePoint_18)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(18); // 18
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_10) || gb.betType == uint256(BettorType.SinglePoint_17)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(16); // 16
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
        if (gb.betType == uint256(BettorType.SinglePoint_11) || gb.betType == uint256(BettorType.SinglePoint_16)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(15); // 15
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_12) || gb.betType == uint256(BettorType.SinglePoint_15)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(14); // 14
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
         if (gb.betType == uint256(BettorType.SinglePoint_13) || gb.betType == uint256(BettorType.SinglePoint_14)) && (wr.sumResult == gb.PiointNum) {
            gb.isReward = true;
            uint256 _reWardVale = gb.value.mul(40).div(3); // 13.333
            gb.reWardVale = _reWardVale;
            updateRewardLists(gb.account, gb.hgmId, gb.index, _reWardVale);
            continue;
        }
    }
}

// Bet

function createBettor(uint256 amount, uint256 betType) public returns (bool) {
    // Check if the bet type is true or false 
    require(_betType >= uint256(BettorType.Big) && _betType <= uint256(BettorType.BaccaratSame), "createBettor: invalid bettor type, please bette repeat");
    // The lowest bet is 10U
    require(_amount >= 10000000, "createBettor: bette amount must more than 10U");
    // Check if the user’s balance is available
    require(betteToken.balanceOf(msg.sender) >= _amount, "createBettor: bettor account balance not enough");
    if (block.number > endBlock) {
        // End the current game
        endHashGame();
    }
    GuessBettor memory gb = GuessBettor({
        account: msg.sender,
        index: (usersGuessListMap[msg.sender][hgmGlobalId]).length,
        value: _amount,
        hgmId: hgmGlobalId,
        betType: _betType,
        isReward: false,
        PiointNum: _betType - 16,
        reWardVale: 0
    });
    // The users’ history records 
    guessListMap[hgmGlobalId].push(gb);
    // The list of users’ information 
    userInfo storage user = userInfoList[msg.sender];
    user.totalBetted = user.totalBetted + _amount;
    // The users’betting  records
    usersGuessListMap[msg.sender][hgmGlobalId].push(gb);
    // The current total bet
    WinningResult storage currentWinningResult = WinningMap[hgmGlobalId];
    currentWinningResult.totalBetted = currentWinningResult.totalBetted + _amount;
    emit GuessBettorCreate(msg.sender, amount, betType, hgmGlobalId, gb.index);
    require(betteToken.transferFrom(msg.sender, address(this), _amount));
    return true;
}

Releases

No releases published

Packages

No packages published