mirror of
https://github.com/Ratstail91/SANCTUM.git
synced 2025-11-29 02:24:27 +11:00
Can now access stats
This commit is contained in:
@@ -140,7 +140,7 @@ function processBasicCommands(client, message) {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
case "wallet": //DEBUGGING
|
case "wallet": //DEBUGGING
|
||||||
shared.OnServerData("account", (amount) => {
|
shared.OnServerData("wallet", (amount) => {
|
||||||
shared.SendPublicMessage(client, message.channel, "Wallet: " + amount);
|
shared.SendPublicMessage(client, message.channel, "Wallet: " + amount);
|
||||||
}, message.author.id);
|
}, message.author.id);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
10
ADAM/core.js
10
ADAM/core.js
@@ -135,7 +135,7 @@ exports.ProcessGiveCommand = function(client, message, args, dialog) {
|
|||||||
dataRequest.OnServerData("transfer", handleResponse, message.author.id, targetMember.id, amount);
|
dataRequest.OnServerData("transfer", handleResponse, message.author.id, targetMember.id, amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
dataRequest.OnServerData("account", handleResponse, message.author.id);
|
dataRequest.OnServerData("wallet", handleResponse, message.author.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
//ProcessStatsCommand
|
//ProcessStatsCommand
|
||||||
@@ -182,9 +182,9 @@ exports.PrintStats = function(client, member, channel, stats) {
|
|||||||
|
|
||||||
// Forms stats into a string
|
// Forms stats into a string
|
||||||
let levelText = `:level: **${stats.level}**`; //NOTE: I don't like backticks
|
let levelText = `:level: **${stats.level}**`; //NOTE: I don't like backticks
|
||||||
let levelProgress = `(${stats.levelPercent}%)`;
|
let levelProgress = `(${stats.levelProgress}%)`;
|
||||||
let crystalText = `:crystals: **${stats.wallet}**`;
|
let crystalText = `:crystals: **${stats.wallet}**`;
|
||||||
let cannisterText = `:cannister: **${stats.statPoints}**`;
|
let cannisterText = `:cannister: **${stats.upgradePoints}**`;
|
||||||
let userStats = "```" + `STR: ${stats.strength} | SPD: ${stats.speed} | STAM: ${stats.stamina}/${stats.maxStamina} | HP: ${stats.health}/${stats.maxHealth}` + "```";
|
let userStats = "```" + `STR: ${stats.strength} | SPD: ${stats.speed} | STAM: ${stats.stamina}/${stats.maxStamina} | HP: ${stats.health}/${stats.maxHealth}` + "```";
|
||||||
|
|
||||||
// Says level is maxed out if it is LVL 30+
|
// Says level is maxed out if it is LVL 30+
|
||||||
@@ -222,13 +222,13 @@ exports.HandleLevelUp = function(client, member, channel, dialog) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Sees if the user is supposed to level up
|
// Sees if the user is supposed to level up
|
||||||
let handleResponse = function(response, level, statPoints) {
|
let handleResponse = function(response, level, upgradePoints) {
|
||||||
//handle levelling up
|
//handle levelling up
|
||||||
if (response === "levelUp" || response === "RankUp") {
|
if (response === "levelUp" || response === "RankUp") {
|
||||||
if (level >= process.env.RANK_3_THRESHOLD) {
|
if (level >= process.env.RANK_3_THRESHOLD) {
|
||||||
shared.SendPublicMessage(client, member.user, channel, dialog("levelUpCap", dialog("levelUpCapRemark"), level));
|
shared.SendPublicMessage(client, member.user, channel, dialog("levelUpCap", dialog("levelUpCapRemark"), level));
|
||||||
} else {
|
} else {
|
||||||
shared.SendPublicMessage(client, member.user, channel, dialog("LevelUp", dialog("levelUpRemark"), level, statPoints));
|
shared.SendPublicMessage(client, member.user, channel, dialog("LevelUp", dialog("levelUpRemark"), level, upgradePoints));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ io.on("connection", async (socket) => {
|
|||||||
socket.on("updateStamina", handleUpdateStamina);
|
socket.on("updateStamina", handleUpdateStamina);
|
||||||
socket.on("conversion", handleConversion);
|
socket.on("conversion", handleConversion);
|
||||||
socket.on("checkin", handleCheckin);
|
socket.on("checkin", handleCheckin);
|
||||||
socket.on("account", handleAccount);
|
socket.on("wallet", handleWallet);
|
||||||
socket.on("transfer", handleTransfer);
|
socket.on("transfer", handleTransfer);
|
||||||
socket.on("userStats", handleUserStats);
|
socket.on("userStats", handleUserStats);
|
||||||
socket.on("addXP", handleAddXP);
|
socket.on("addXP", handleAddXP);
|
||||||
@@ -144,7 +144,7 @@ async function handleCheckin({ data }, fn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//handle account requests
|
//handle account requests
|
||||||
async function handleAccount({ data }, fn) {
|
async function handleWallet({ data }, fn) {
|
||||||
//data[0] = ID of the person to check
|
//data[0] = ID of the person to check
|
||||||
|
|
||||||
let query = `SELECT wallet FROM users WHERE userID='${data[0]}' LIMIT 1;`;
|
let query = `SELECT wallet FROM users WHERE userID='${data[0]}' LIMIT 1;`;
|
||||||
@@ -206,24 +206,29 @@ async function handleUserStats({ data }, fn) {
|
|||||||
console.log("received a userStats request...");
|
console.log("received a userStats request...");
|
||||||
//data[0] = user ID
|
//data[0] = user ID
|
||||||
|
|
||||||
//NOTE: build a temporary structure to pass back
|
//parameters to fn: stat structure
|
||||||
|
|
||||||
|
let query = `SELECT level, experience, maxHealth, health, maxStamina, stamina, strength, speed, upgradePoints, wallet FROM users WHERE userID='${data[0]}' LIMIT 1;`;
|
||||||
|
return dbConnection.query(query, (err, result) => {
|
||||||
|
if (err) throw err;
|
||||||
|
|
||||||
let stats = {
|
let stats = {
|
||||||
strength: 0,
|
level: result[0].level,
|
||||||
speed: 0,
|
experience: result[0].experience,
|
||||||
stamina: 0,
|
levelProgress: calculateLevelProgress(result[0].experience),
|
||||||
health: 0,
|
maxHealth: result[0].maxHealth,
|
||||||
maxStamina: 0,
|
health: result[0].health,
|
||||||
maxHealth: 0,
|
maxStamina: result[0].maxStamina,
|
||||||
wallet: 0,
|
stamina: result[0].stamina,
|
||||||
experience: 0,
|
strength: result[0].strength,
|
||||||
level: 0,
|
speed: result[0].speed,
|
||||||
levelPercent: 0,
|
upgradePoints: result[0].upgradePoints,
|
||||||
statPoints: 0
|
wallet: result[0].wallet
|
||||||
};
|
};
|
||||||
|
|
||||||
if (fn) {
|
//TODO: log this
|
||||||
fn(stats);
|
return fn(stats);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//DEBUGGING?
|
//DEBUGGING?
|
||||||
@@ -243,3 +248,18 @@ async function handleLevelUp({ data }, fn) {
|
|||||||
fn("none", 0, 0); //["none", "levelUp"], level, statPoints
|
fn("none", 0, 0); //["none", "levelUp"], level, statPoints
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//utility functions
|
||||||
|
function calculateLevel(experience) {
|
||||||
|
const levelBase = 1.2;
|
||||||
|
return levelBase * Math.sqrt(experience);
|
||||||
|
}
|
||||||
|
|
||||||
|
function calculateLevelProgress(experience) {
|
||||||
|
let level = calculateLevel(experience);
|
||||||
|
|
||||||
|
let base = Math.floor(level);
|
||||||
|
let decimal = level - base;
|
||||||
|
|
||||||
|
return Math.floor(decimal * 100); //percentage
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user