roulette_phone_friendly

roulette_phone_friendly_new

// ==UserScript==
// @name         roulette_phone_friendly
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  roulette_phone_friendly_new
// @author       Salmon
// @match        /^https{0,1}:\/\/((www|my)\.(heroeswm|lordswm)\.(ru|com)|178\.248\.235\.15)\/(roulette).php*/
// @include      /^https{0,1}:\/\/((www|my)\.(heroeswm|lordswm)\.(ru|com)|178\.248\.235\.15)\/(roulette).php*/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=lordswm.com
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';
    //common styles
    const styledBtn = 'border: none; overflow: hidden; width:350px; margin-bottom: 4px; margin-top: 4px; text-overflow: ellipsis; white-space: nowrap; color: #592c08; font-family: verdana,geneva,arial cyr; position: relative; text-align: center; font-weight: 700; background: url(../i/homeico/art_btn_bg_gold.png) #dab761; background-size: 100% 100%; border-radius: 5px; box-shadow: inset 0 0 0 1px #fce6b0,inset 0 0 0 2px #a78750,0 0 0 1px rgba(0,0,0,.13); line-height: 25px; cursor: pointer; transition: -webkit-filter .15s;transition: filter .15s;'

    //constants

    const createEl = (el, style, innerText, placeholder, type) => {
        let element = document.createElement(el);
        if (style) element.style = style;
        if (innerText) element.innerText = innerText;
        if (placeholder) element.placeholder = placeholder;
        if (type) element.type = type;
        return element;
    }

    let link = [...document.getElementsByTagName('a')];
    link = link.filter(el => el.innerText === 'Прошлая игра');
    if (link[1] === undefined) {
        setTimeout(() => location.reload(), 10000);
        return;
    } else {
        link = link[1].href;
    }

    //show/hide Script panel
    let toogleRouletteScript = JSON.parse(localStorage.getItem('toogleRouletteScript'));
    if (toogleRouletteScript === null) localStorage.setItem('toogleRouletteScript', JSON.stringify(true));
    let toogleShow = toogleRouletteScript;
    const toogleRouletteScriptBtn = createEl('div', 'width: 90px; height: 90px; border-radius: 100%; background: wheat; cursor: pointer; position: absolute; z-index: 99999; top: 110px; left: 5px;');
    toogleRouletteScriptBtn.addEventListener('click', () => {
        toogleShow = !toogleShow;
        localStorage.setItem('toogleRouletteScript', JSON.stringify(toogleShow));
        panel.style.visibility = toogleShow ? 'visible' : 'hidden';
    })
    toogleRouletteScriptBtn.innerHTML = `<div><img style='width: 90px; height: 90px' src='https://cfcdn.lordswm.com/i/new_top/_panelRoulette.png'/></div>`;
    document.body.appendChild(toogleRouletteScriptBtn);

    //Bet value
    let moneyValue = JSON.parse(localStorage.getItem('moneyValue'));
    if (moneyValue === null) localStorage.setItem('moneyValue', JSON.stringify(1000));
    const setMoneyValue = createEl('input', 'height: 25px; width: 350px; border: 1px solid #592c08; border-radius: 5px;', '', 'ставка', 'number');
    const setMoneyValueBtn = createEl('button', styledBtn, 'Задать ставку');
    const setMoneyValueInfoBlock = createEl('div', 'font-weight: bold;', `Ставка: ${moneyValue}`);

    setMoneyValueBtn.addEventListener('click', () => {
        localStorage.setItem('moneyValue', JSON.stringify(setMoneyValue.value));
        location.reload();
    });

    //Bet buttons and inputs
    let betInput = [...document.getElementsByTagName('input')]
    betInput = betInput.filter(el => el.name === 'bet')[0];

    let betType = [...document.getElementsByTagName('input')]
    betType = betType.filter(el => el.name === 'bettype')[0];

    let betBtn = [...document.getElementsByTagName('input')]
    betBtn = betBtn.filter(el => el.value === 'Поставить!')[0];

    //Creating panel element and playstyle buttons
    const panel = createEl('div', 'position: absolute; top: 150px; right: 30px; width: 450px; heigth: 250px; background-color: wheat; padding: 7px; text-align: center;', '');
    panel.style.visibility = toogleShow ? 'visible' : 'hidden';

    const resetBtn = createEl('div', 'width: 40px; height: 40px; cursor: pointer;');
    resetBtn.innerHTML = `<div><img style='width: 40px; height: 40px' src='https://cfcdn.lordswm.com/i/pl_info/btn_reset.png'/></div>`;
    const br = createEl('div', 'border-radius: 7px; border-bottom: 4px solid rgb(218, 183, 97); ; border-top: 4px solid rgb(218, 183, 97); margin: 6px;');

    //Setting Gameplays
    let playOneNum = JSON.parse(localStorage.getItem('playOneNum'));
    if (playOneNum === null) localStorage.setItem('playOneNum', JSON.stringify(true));

    let playToogle = JSON.parse(localStorage.getItem('playToogle'));
    if (playToogle === null) localStorage.setItem('playToogle', JSON.stringify(false));

    const setPlayToogle = createEl('button', styledBtn, `${playToogle ? 'Остановить скрипт' : 'Запустить скрипт'}`)

    setPlayToogle.addEventListener('click', () => {
        let toogle = playToogle;
        localStorage.setItem('playToogle', JSON.stringify(!playToogle));
        location.reload();
    });

    panel.appendChild(setPlayToogle);
    panel.appendChild(setMoneyValue);
    panel.appendChild(setMoneyValueInfoBlock);
    panel.appendChild(setMoneyValueBtn);

    document.body.appendChild(panel);

    //Gameplays
    if (playOneNum === true) {
        let num_to_play_ls = JSON.parse(localStorage.getItem('num_to_play_ls'));
        let num_to_play_count_ls = JSON.parse(localStorage.getItem('num_to_play_count_ls'));

        if (num_to_play_ls == null) {
            localStorage.setItem('num_to_play_ls', JSON.stringify(0));
            location.reload();
        } else if (num_to_play_count_ls == null) {
            localStorage.setItem('num_to_play_count_ls', JSON.stringify(0));
            location.reload();
        }

        const playBlock = createEl('div', 'diplay: flex; flex-directon: column');
        const setNumToPlayInput = createEl('input', 'height: 25px; width: 350px; border: 1px solid #592c08; border-radius: 5px;', '', 'вказати число, яке потрібно ловити', 'number');
        const setNumCountInput = createEl('input', 'height: 25px; width: 350px; border: 1px solid #592c08; border-radius: 5px;', '', 'кількість спінів', 'number');
        const setNumToPlayBtn = createEl('button', styledBtn, 'Зберегти вказане число');
        const setNumCountBtn = createEl('button', styledBtn, 'Зберегти кількість спінів');
        const numToPlayInfoBlock = createEl('div', 'font-weight: bold; font-size: 15px;', '');
        const numsCounterInfoBlock = createEl('div', 'font-weight: bold; font-size: 15px;', '');

        resetBtn.addEventListener('click', () => {
            localStorage.setItem('num_to_play_ls', JSON.stringify(0));
            localStorage.setItem('num_to_play_count_ls', JSON.stringify(0));
            location.reload();
        })

        setNumToPlayBtn.addEventListener('click', () => {
            if (setNumToPlayInput.value.length !== 0) {
                localStorage.setItem('num_to_play_ls', JSON.stringify(Number(setNumToPlayInput.value)));
                location.reload();
            } else {
                alert('Вкажіть число!')
            }
        })

        setNumCountBtn.addEventListener('click', () => {
            if (setNumCountInput.value.length !== 0) {
                localStorage.setItem('num_to_play_count_ls', JSON.stringify(Number(setNumCountInput.value)));
                location.reload();
            } else {
                alert('Вкажіть кількість спінів!')
            }
        })

        playBlock.appendChild(setNumToPlayInput);
        playBlock.appendChild(setNumToPlayBtn);
        playBlock.appendChild(setNumCountInput);
        playBlock.appendChild(setNumCountBtn);
        playBlock.appendChild(numToPlayInfoBlock);
        playBlock.appendChild(numsCounterInfoBlock);

        numToPlayInfoBlock.innerText = `Зараз ловимо число ${num_to_play_ls}`;
        numsCounterInfoBlock.innerText = `Залишилося спінів ${num_to_play_count_ls}`;

        panel.appendChild(playBlock);

        let checkMyBet = [...document.getElementsByTagName('center')];
        checkMyBet = checkMyBet[3].parentElement;
        checkMyBet = checkMyBet.getElementsByTagName('tr')[1].getElementsByTagName('td')[1].innerText;
        if (num_to_play_count_ls <= 0) {
            playToogle = false;
            localStorage.setItem('playToogle', JSON.stringify(playToogle));
        }
        if (playToogle) {
            if (checkMyBet.includes('Straight up')) {
                return;
            } else {
                betInput.value = moneyValue;
                betType.value = `Straight up ${num_to_play_ls}`;
                localStorage.setItem('num_to_play_count_ls', JSON.stringify(Number(num_to_play_count_ls - 1)));
                betBtn.click();
            }
        }
    }

})();