mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew.git
synced 2025-05-13 11:37:33 -05:00
Add chat bond unlocks
This commit is contained in:
parent
8fb8cc401d
commit
cec34b81ac
2 changed files with 33 additions and 7 deletions
|
@ -4,7 +4,12 @@ use actix_web::{HttpRequest};
|
||||||
use crate::router::{global, items, userdata, databases};
|
use crate::router::{global, items, userdata, databases};
|
||||||
use crate::encryption;
|
use crate::encryption;
|
||||||
|
|
||||||
pub fn add_chat(id: i64, num: i64, chats: &mut JsonValue) {
|
pub fn add_chat(id: i64, num: i64, chats: &mut JsonValue) -> bool {
|
||||||
|
for data in chats.members() {
|
||||||
|
if data["chat_id"] == id && data["room_id"] == num {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
chats.push(object!{
|
chats.push(object!{
|
||||||
chat_id: id,
|
chat_id: id,
|
||||||
room_id: num,
|
room_id: num,
|
||||||
|
@ -12,6 +17,7 @@ pub fn add_chat(id: i64, num: i64, chats: &mut JsonValue) {
|
||||||
is_read: 0,
|
is_read: 0,
|
||||||
created_at: global::timestamp()
|
created_at: global::timestamp()
|
||||||
}).unwrap();
|
}).unwrap();
|
||||||
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn home(req: HttpRequest, body: String) -> Option<JsonValue> {
|
pub fn home(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||||
|
|
|
@ -333,8 +333,7 @@ fn give_mission_rewards(user: &mut JsonValue, missions: &JsonValue, user_mission
|
||||||
}
|
}
|
||||||
rv
|
rv
|
||||||
}
|
}
|
||||||
|
fn get_master_num(id: i64) -> i64 {
|
||||||
fn get_master_id(id: i64) -> i64 {
|
|
||||||
let id = id.to_string();
|
let id = id.to_string();
|
||||||
let mut masterid = 0;
|
let mut masterid = 0;
|
||||||
if id.starts_with('2') {
|
if id.starts_with('2') {
|
||||||
|
@ -344,18 +343,25 @@ fn get_master_id(id: i64) -> i64 {
|
||||||
} else if id.starts_with('4') {
|
} else if id.starts_with('4') {
|
||||||
masterid += 9 + 9 + 12;
|
masterid += 9 + 9 + 12;
|
||||||
}
|
}
|
||||||
masterid + id.char_indices().last().unwrap().1.to_string().parse::<i64>().unwrap()
|
masterid
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_master_id(id: i64) -> i64 {
|
||||||
|
get_master_num(id) + id.to_string().char_indices().last().unwrap().1.to_string().parse::<i64>().unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
const MAX_BOND: i64 = 500000;
|
const MAX_BOND: i64 = 500000;
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
pub static ref BOND_WEIGHT: JsonValue = {
|
static ref BOND_WEIGHT: JsonValue = {
|
||||||
array![1, 1, 2, 2, 5, 2, 2, 1, 1]
|
array![1, 1, 2, 2, 5, 2, 2, 1, 1]
|
||||||
};
|
};
|
||||||
|
static ref CHATS: JsonValue = {
|
||||||
|
array![1, 1000, 2000, 3500, 5000, 6000, 7000, 8000, 9000, 10000, 11000, 12500, 13000, 13500, 15000]
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_live_character_list(lp_used: i32, deck_id: i32, user: &JsonValue, missions: &mut JsonValue, completed_missions: &mut JsonValue) -> JsonValue {
|
fn get_live_character_list(lp_used: i32, deck_id: i32, user: &JsonValue, missions: &mut JsonValue, completed_missions: &mut JsonValue, chats: &mut JsonValue) -> JsonValue {
|
||||||
let mut rv = array![];
|
let mut rv = array![];
|
||||||
let mut has = array![];
|
let mut has = array![];
|
||||||
let mut has_i = array![];
|
let mut has_i = array![];
|
||||||
|
@ -429,6 +435,18 @@ fn get_live_character_list(lp_used: i32, deck_id: i32, user: &JsonValue, mission
|
||||||
}).unwrap();
|
}).unwrap();
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
|
for data in rv.members() {
|
||||||
|
for chat in CHATS.members() {
|
||||||
|
if chat.as_i64().unwrap() > data["exp"].as_i64().unwrap() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if crate::router::chat::add_chat(data["master_character_id"].as_i64().unwrap(), 1, chats) {
|
||||||
|
let mission_id = 1958000 + (get_master_id(data["master_character_id"].as_i64().unwrap()) * CHATS.len() as i64);
|
||||||
|
items::update_mission_status(mission_id, 0, true, true, 1, missions);
|
||||||
|
completed_missions.push(mission_id).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
rv
|
rv
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,6 +456,7 @@ fn live_end(req: &HttpRequest, body: &str, skipped: bool) -> JsonValue {
|
||||||
let user2 = userdata::get_acc_home(&key);
|
let user2 = userdata::get_acc_home(&key);
|
||||||
let mut user = userdata::get_acc(&key);
|
let mut user = userdata::get_acc(&key);
|
||||||
let mut user_missions = userdata::get_acc_missions(&key);
|
let mut user_missions = userdata::get_acc_missions(&key);
|
||||||
|
let mut chats = userdata::get_acc_chats(&key);
|
||||||
|
|
||||||
let live = if skipped {
|
let live = if skipped {
|
||||||
items::use_item(&object!{
|
items::use_item(&object!{
|
||||||
|
@ -520,10 +539,11 @@ fn live_end(req: &HttpRequest, body: &str, skipped: bool) -> JsonValue {
|
||||||
|
|
||||||
items::give_exp(lp_used, &mut user, &mut user_missions, &mut cleared_missions);
|
items::give_exp(lp_used, &mut user, &mut user_missions, &mut cleared_missions);
|
||||||
|
|
||||||
let characters = get_live_character_list(lp_used, body["deck_slot"].as_i32().unwrap_or(user["user"]["main_deck_slot"].as_i32().unwrap()), &user, &mut user_missions, &mut cleared_missions);
|
let characters = get_live_character_list(lp_used, body["deck_slot"].as_i32().unwrap_or(user["user"]["main_deck_slot"].as_i32().unwrap()), &user, &mut user_missions, &mut cleared_missions, &mut chats);
|
||||||
|
|
||||||
userdata::save_acc(&key, user.clone());
|
userdata::save_acc(&key, user.clone());
|
||||||
userdata::save_acc_missions(&key, user_missions);
|
userdata::save_acc_missions(&key, user_missions);
|
||||||
|
userdata::save_acc_chats(&key, chats);
|
||||||
|
|
||||||
object!{
|
object!{
|
||||||
"gem": user["gem"].clone(),
|
"gem": user["gem"].clone(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue