mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew
synced 2025-10-09 08:57:20 +08:00
Implement chats for birthday characters
This commit is contained in:
@@ -4,7 +4,8 @@ use actix_web::{HttpRequest};
|
||||
use crate::router::{userdata, global, items, databases};
|
||||
use crate::encryption;
|
||||
|
||||
fn do_reinforce(user: &mut JsonValue, body: &JsonValue, exp_id: &str, money_multiplier: i64, evolve: bool) -> JsonValue {
|
||||
// Chats will only ever be used when evolving
|
||||
fn do_reinforce(user: &mut JsonValue, body: &JsonValue, exp_id: &str, money_multiplier: i64, evolve: bool, missions: &mut JsonValue, chats: &mut JsonValue, clear_mission_ids: &mut JsonValue) -> JsonValue {
|
||||
for (i, data) in user["card_list"].members().enumerate() {
|
||||
if data["id"] == body["id"] {
|
||||
let materials = &body["material_item_list"];
|
||||
@@ -34,6 +35,19 @@ fn do_reinforce(user: &mut JsonValue, body: &JsonValue, exp_id: &str, money_mult
|
||||
data["amount"] = (data["amount"].as_i64().unwrap() - money).into();
|
||||
}
|
||||
}
|
||||
if evolve {
|
||||
if !databases::CHARACTER_CHATS[card["master_card_id"].to_string()]["50"].is_empty() {
|
||||
let chat = &databases::CHARACTER_CHATS[card["master_card_id"].to_string()]["50"];
|
||||
let mission_id = databases::MISSION_REWARD[chat[0].to_string()]["value"].as_i64().unwrap();
|
||||
|
||||
if crate::router::chat::add_chat_from_chapter_id(mission_id, chats) {
|
||||
items::update_mission_status(chat[1].as_i64().unwrap(), 0, true, true, 1, missions);
|
||||
if !clear_mission_ids.contains(chat[1].as_i64().unwrap()) {
|
||||
clear_mission_ids.push(chat[1].clone()).unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return card;
|
||||
}
|
||||
}
|
||||
@@ -44,8 +58,9 @@ pub fn reinforce(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||
let key = global::get_login(req.headers(), &body);
|
||||
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||
let mut user = userdata::get_acc(&key);
|
||||
let mut clear_mission_ids = array![];
|
||||
|
||||
let card = do_reinforce(&mut user, &body, "exp", 1, false);
|
||||
let card = do_reinforce(&mut user, &body, "exp", 1, false, &mut array![], &mut array![], &mut clear_mission_ids);
|
||||
|
||||
userdata::save_acc(&key, user.clone());
|
||||
|
||||
@@ -53,7 +68,7 @@ pub fn reinforce(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||
card: card,
|
||||
item_list: user["item_list"].clone(),
|
||||
point_list: user["point_list"].clone(),
|
||||
clear_mission_ids: []
|
||||
clear_mission_ids: clear_mission_ids
|
||||
})
|
||||
}
|
||||
|
||||
@@ -61,8 +76,9 @@ pub fn skill_reinforce(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||
let key = global::get_login(req.headers(), &body);
|
||||
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||
let mut user = userdata::get_acc(&key);
|
||||
let mut clear_mission_ids = array![];
|
||||
|
||||
let card = do_reinforce(&mut user, &body, "skill_exp", 10, false);
|
||||
let card = do_reinforce(&mut user, &body, "skill_exp", 10, false, &mut array![], &mut array![], &mut clear_mission_ids);
|
||||
|
||||
userdata::save_acc(&key, user.clone());
|
||||
|
||||
@@ -70,7 +86,7 @@ pub fn skill_reinforce(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||
card: card,
|
||||
item_list: user["item_list"].clone(),
|
||||
point_list: user["point_list"].clone(),
|
||||
clear_mission_ids: []
|
||||
clear_mission_ids: clear_mission_ids
|
||||
})
|
||||
}
|
||||
|
||||
@@ -78,15 +94,20 @@ pub fn evolve(req: HttpRequest, body: String) -> Option<JsonValue> {
|
||||
let key = global::get_login(req.headers(), &body);
|
||||
let body = json::parse(&encryption::decrypt_packet(&body).unwrap()).unwrap();
|
||||
let mut user = userdata::get_acc(&key);
|
||||
let mut chats = userdata::get_acc_chats(&key);
|
||||
let mut missions = userdata::get_acc_missions(&key);
|
||||
let mut clear_mission_ids = array![];
|
||||
|
||||
let card = do_reinforce(&mut user, &body, "", 0, true);
|
||||
let card = do_reinforce(&mut user, &body, "", 0, true, &mut missions, &mut chats, &mut clear_mission_ids);
|
||||
|
||||
userdata::save_acc(&key, user.clone());
|
||||
userdata::save_acc_chats(&key, chats);
|
||||
userdata::save_acc_missions(&key, missions);
|
||||
|
||||
Some(object!{
|
||||
card: card,
|
||||
item_list: user["item_list"].clone(),
|
||||
point_list: user["point_list"].clone(),
|
||||
clear_mission_ids: []
|
||||
clear_mission_ids: clear_mission_ids
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user