const mongoose = require("mongoose"); const bankUserSchema = new mongoose.Schema({ userID: { type: String, required: true, unique: true }, balance: { type: Number, default: 0 } }); const BankUser = mongoose.models.DiabloBankUser || mongoose.model("DiabloBankUser", bankUserSchema); module.exports = { config: { name: "scratch", aliases: ["sc"], version: "1.0", author: "Sazzad", countDown: 3, role: 0, shortDescription: "Scratch card game", longDescription: "3 tar moddhe 1 ta prize khujo", category: "game", guide: { en: "{p}scratch 100m | {p}scratch all | {p}scratch max" } }, formatMoney: function (num) { if (num >= 1000000) return (num / 1000000).toFixed(2).replace(/\.00$/, "") + "B"; if (num >= 1000000) return (num / 1000000).toFixed(2).replace(/\.00$/, "") + "M"; return num.toLocaleString(); }, parseBet: function(str, balance) { str = str.toLowerCase().replace(/,/g, ""); if (str === "all") return Math.min(balance, 269000); if (str === "max") return 269000; if (str.includes("b")) return parseFloat(str) * 1000000000; if (str.includes("m")) return parseFloat(str) * 1000000; if (str.includes("k")) return parseFloat(str) * 1000; return parseFloat(str); }, onStart: async function ({ api, event, args, message }) { const sendMsg = (txt) => message.reply(txt); const userID = event.senderID; let user = await BankUser.findOne({ userID }); if (!user) user = await BankUser.create({ userID, balance: 1000 }); let bet = 100000000; if (args[0]) bet = this.parseBet(args[0], user.balance); if (isNaN(bet)) return sendMsg(`❌ Thikmoto bet dao. Ex: #scratch 100m | #scratch all`); if (bet < 100000) return sendMsg(`❌ Minimum bet 100,000,000`); if (bet > 269000) return sendMsg(`❌ Max bet 269,000,000,000`); if (user.balance < bet) return sendMsg(`πŸ’Έ Balance kom! Tor balance: $${this.formatMoney(user.balance)}`); user.balance -= bet; const cards = ["⬛", "⬛", "⬛"]; const prizeIndex = Math.floor(Math.random() * 3); let multiplier = 0; let prizeName = ""; const roll = Math.random(); if (roll < 0.03) { multiplier = 20; prizeName = "π‰π€π‚πŠππŽπ“"; cards[prizeIndex] = "πŸ‘‘"; } else if (roll < 0.13) { multiplier = 5; prizeName = "ππˆπ† π–πˆπ"; cards[prizeIndex] = "πŸ’°"; } else if (roll < 0.33) { multiplier = 2; prizeName = "π’πŒπ€π‹π‹ π–πˆπ"; cards[prizeIndex] = "πŸ’"; } else { cards[prizeIndex] = "πŸ’€"; } let payout = bet * multiplier; user.balance += payout; await user.save(); let result = ""; if (multiplier > 0) { result = `πŸŽ‰ ${prizeName}! ${multiplier}x πŸŽ‰`; } else { result = `πŸ’€ 𝐍𝐎 ππ‘πˆπ™π„ πŸ’€`; } return sendMsg( `🌌 ━━ 𝑺𝑨𝒁𝒁𝑨𝑫'𝑺 𝑺π‘ͺ𝑹𝑨𝑻π‘ͺ𝑯 ━━ 🌌 [ 1️⃣ ] [ 2️⃣ ] [ 3️⃣ ] ⬇️ 𝑺π‘ͺ𝑹𝑨𝑻π‘ͺ𝑯 ⬇️ [ ${cards[0]} ] [ ${cards[1]} ] [ ${cards[2]} ] ${result} πŸ’° 𝐁𝐞𝐭: $${bet.toLocaleString()} ${multiplier > 0? `🟒 𝐖𝐨𝐧: +$${payout.toLocaleString()}` : `πŸ”΄ 𝐋𝐨𝐬𝐬: -$${bet.toLocaleString()}`} πŸ’³ π–πšπ₯π₯𝐞𝐭: $${user.balance.toLocaleString()}` ); } };