mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew.git
synced 2025-05-13 11:37:33 -05:00
Reward user with LP when level up
This commit is contained in:
parent
b154aedf79
commit
ae7725c9f0
3 changed files with 24 additions and 15 deletions
|
@ -115,3 +115,23 @@ pub fn gift_item(item: &JsonValue, user: &mut JsonValue) {
|
||||||
};
|
};
|
||||||
user["home"]["gift_list"].push(to_push).unwrap();
|
user["home"]["gift_list"].push(to_push).unwrap();
|
||||||
}
|
}
|
||||||
|
pub fn get_user_rank_data(exp: i64) -> JsonValue {
|
||||||
|
let ranks = json::parse(include_str!("userdata/user_rank.json")).unwrap();
|
||||||
|
|
||||||
|
for (i, rank) in ranks.members().enumerate() {
|
||||||
|
if exp < rank["exp"].as_i64().unwrap() {
|
||||||
|
return ranks[i - 1].clone();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ranks[ranks.len() - 1].clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn give_exp(amount: i32, user: &mut JsonValue) {
|
||||||
|
let current_rank = get_user_rank_data(user["user"]["exp"].as_i64().unwrap());
|
||||||
|
user["user"]["exp"] = (user["user"]["exp"].as_i32().unwrap() + amount).into();
|
||||||
|
let new_rank = get_user_rank_data(user["user"]["exp"].as_i64().unwrap());
|
||||||
|
if current_rank["rank"].to_string() != new_rank["rank"].to_string() {
|
||||||
|
user["stamina"]["stamina"] = (user["stamina"]["stamina"].as_i64().unwrap() + new_rank["maxLp"].as_i64().unwrap()).into();
|
||||||
|
user["stamina"]["last_updated_time"] = timestamp().into();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ pub fn end(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
}
|
}
|
||||||
user["stamina"]["last_updated_time"] = global::timestamp().into();
|
user["stamina"]["last_updated_time"] = global::timestamp().into();
|
||||||
|
|
||||||
user["user"]["exp"] = (user["user"]["exp"].as_i32().unwrap() + body["use_lp"].as_i32().unwrap()).into();
|
global::give_exp(body["use_lp"].as_i32().unwrap(), &mut user);
|
||||||
|
|
||||||
let live = update_live_data(&mut user, &body);
|
let live = update_live_data(&mut user, &body);
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ use std::sync::{Mutex, MutexGuard};
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use json::{JsonValue, object};
|
use json::{JsonValue, object};
|
||||||
use crate::router::global;
|
use crate::router::global;
|
||||||
use math::round;
|
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
|
@ -180,16 +179,6 @@ fn get_login_token(uid: i64) -> String {
|
||||||
}
|
}
|
||||||
data.unwrap()
|
data.unwrap()
|
||||||
}
|
}
|
||||||
pub fn get_user_rank_data(exp: i64) -> JsonValue {
|
|
||||||
let ranks = json::parse(include_str!("user_rank.json")).unwrap();
|
|
||||||
|
|
||||||
for (i, rank) in ranks.members().enumerate() {
|
|
||||||
if exp < rank["exp"].as_i64().unwrap() {
|
|
||||||
return ranks[i - 1].clone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ranks[ranks.len() - 1].clone();
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_data(auth_key: &str, row: &str) -> JsonValue {
|
fn get_data(auth_key: &str, row: &str) -> JsonValue {
|
||||||
let key = get_key(&auth_key);
|
let key = get_key(&auth_key);
|
||||||
|
@ -203,7 +192,7 @@ pub fn get_acc(auth_key: &str) -> JsonValue {
|
||||||
let mut user = get_data(auth_key, "userdata");
|
let mut user = get_data(auth_key, "userdata");
|
||||||
user["gem"]["total"] = (user["gem"]["charge"].as_i64().unwrap() + user["gem"]["free"].as_i64().unwrap()).into();
|
user["gem"]["total"] = (user["gem"]["charge"].as_i64().unwrap() + user["gem"]["free"].as_i64().unwrap()).into();
|
||||||
|
|
||||||
let max = get_user_rank_data(user["user"]["exp"].as_i64().unwrap())["maxLp"].as_u64().unwrap();
|
let max = global::get_user_rank_data(user["user"]["exp"].as_i64().unwrap())["maxLp"].as_u64().unwrap();
|
||||||
let speed = 285; //4 mins, 45 sec
|
let speed = 285; //4 mins, 45 sec
|
||||||
let since_last = global::timestamp() - user["stamina"]["last_updated_time"].as_u64().unwrap();
|
let since_last = global::timestamp() - user["stamina"]["last_updated_time"].as_u64().unwrap();
|
||||||
|
|
||||||
|
@ -211,7 +200,7 @@ pub fn get_acc(auth_key: &str) -> JsonValue {
|
||||||
let restored = (since_last - diff) / speed;
|
let restored = (since_last - diff) / speed;
|
||||||
user["stamina"]["last_updated_time"] = (global::timestamp() - diff).into();
|
user["stamina"]["last_updated_time"] = (global::timestamp() - diff).into();
|
||||||
|
|
||||||
let mut stamina = user["stamina"]["stamina"].as_i64().unwrap();
|
let mut stamina = user["stamina"]["stamina"].as_u64().unwrap();
|
||||||
if stamina < max {
|
if stamina < max {
|
||||||
stamina += restored;
|
stamina += restored;
|
||||||
if stamina > max {
|
if stamina > max {
|
||||||
|
@ -298,7 +287,7 @@ pub fn get_name_and_rank(uid: i64) -> JsonValue {
|
||||||
|
|
||||||
return object!{
|
return object!{
|
||||||
user_name: data["user"]["name"].clone(),
|
user_name: data["user"]["name"].clone(),
|
||||||
user_rank: get_user_rank_data(data["user"]["exp"].as_i64().unwrap())["rank"].clone() //todo
|
user_rank: global::get_user_rank_data(data["user"]["exp"].as_i64().unwrap())["rank"].clone() //todo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue