Cleanup method of giving cards

This commit is contained in:
Ethan O'Brien 2024-02-28 12:41:55 -06:00
parent c787bec84e
commit ca220a14db
3 changed files with 55 additions and 26 deletions

View file

@ -1,4 +1,4 @@
use json::JsonValue;
use json::{object, JsonValue};
use crate::encryption;
use actix_web::{
HttpResponse
@ -23,3 +23,29 @@ pub fn send(data: JsonValue) -> HttpResponse {
HttpResponse::Ok().body(resp)
}
pub fn error_resp() -> HttpResponse {
send(object!{})
}
// true - added
// false - already has
pub fn give_character(id: String, user: &mut JsonValue) -> bool {
for (_i, data) in user["card_list"].members().enumerate() {
if data["master_card_id"].to_string() == id {
return false;
}
}
let to_push = object!{
"id": id.clone(),
"master_card_id": id,
"exp": 0,
"skill_exp": 0,
"evolve": [],
"created_date_time": timestamp()
};
user["card_list"].push(to_push.clone()).unwrap();
true
}

View file

@ -94,15 +94,11 @@ pub fn lottery(req: HttpRequest, body: String) -> HttpResponse {
let user2 = userdata::get_acc(key);
let mut cardstogive = get_random_cards(9);
/*let cardstogive = array![
//30110007
{"id": 10, "master_card_id": 40030002, "master_lottery_item_id":911002701,"master_lottery_item_number":1}
];*/
if body["master_lottery_id"].to_string().starts_with("9") {
let item_id = (body["master_lottery_id"].to_string().parse::<i32>().unwrap() * 100) + 1;
//tutorial
let new_card = object!{
"id": get_card_master_id(item_id.to_string(), String::from("1")),
"master_card_id": get_card_master_id(item_id.to_string(), String::from("1")),
"master_lottery_item_id": item_id,
"master_lottery_item_number": 1
@ -112,19 +108,27 @@ pub fn lottery(req: HttpRequest, body: String) -> HttpResponse {
let mut new_cards = array![];
for (_i, data) in cardstogive.members().enumerate() {
if !global::give_character(data["master_card_id"].to_string(), &mut user) {
let to_push = object!{
"id": 6600,
"master_item_id": 19100001,
"amount": 20,
"expire_date_time": null
};
user["item_list"].push(to_push).unwrap();
}
let to_push = object!{
"id": data["id"].clone(),
"id": data["master_card_id"].clone(),
"master_card_id": data["master_card_id"].clone(),
"exp": 0,
"skill_exp": 0,
"evolve": [],
"created_date_time": global::timestamp()
};
user["card_list"].push(to_push.clone()).unwrap();
new_cards.push(to_push).unwrap();
}
userdata::save_acc(key, user);
userdata::save_acc(key, user.clone());
let mut lottery_list = array![];
for (_i, data) in cardstogive.members().enumerate() {
@ -143,7 +147,8 @@ pub fn lottery(req: HttpRequest, body: String) -> HttpResponse {
"data": {
"lottery_item_list": lottery_list,
"updated_value_list": {
"card_list": new_cards
"card_list": new_cards,
"item_list": user["item_list"].clone()
},
"gift_list": user2["home"]["gift_list"].clone(),
"clear_mission_ids": user2["clear_mission_ids"].clone(),

View file

@ -1,5 +1,5 @@
use json;
use json::{array, object};
use json::{array, object, JsonValue};
use crate::router::global;
use crate::encryption;
use actix_web::{HttpResponse, HttpRequest, http::header::HeaderValue};
@ -58,13 +58,22 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse {
let id = body["master_character_id"].to_string();
let userr = &id[id.len() - 2..].parse::<i32>().unwrap();
let cardstoreward: JsonValue;
let mut masterid = 3000000;
if id.starts_with("2") {
if id.starts_with("1") {
cardstoreward = array![10010001, 10020001, 10030001, 10040001, 10050001, 10060001, 10070001, 10080001, 10090001]; //muse
} else if id.starts_with("2") {
cardstoreward = array![20010001, 20020001, 20030001, 20040001, 20050001, 20060001, 20070001, 20080001, 20090001]; //aqours
masterid += 9; //muse
} else if id.starts_with("3") {
masterid += 9 + 9; //aquors
cardstoreward = array![30010001, 30020001, 30030001, 30040001, 30050001, 30060001, 30070001, 30080001, 30090001, 30100001, 30110001]; //nijigasaki
masterid += 9 + 9; //aqours
} else if id.starts_with("4") {
cardstoreward = array![40010001, 40020001, 40030001, 40040001, 40050001, 40060001, 40070001, 40080001, 40090001]; //liella
masterid += 9 + 9 + 12; //nijigasaki
} else {
return global::error_resp();
}
masterid += userr;
@ -72,25 +81,14 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse {
// User is rewarded with all base cards in the team they chose. This makes up their new deck_list
//nijigasaki for now
let cardstoreward = array![30010001, 30020001, 30030001, 30050001, 30060001, 30070001, 30080001, 30090001, 30100001, 30110001];
let ur = user["card_list"][user["card_list"].len() - 1]["id"].clone();
//todo - does the user have the char already?
for (i, data) in cardstoreward.members().enumerate() {
let to_push = object!{
"id": data.clone(),
"master_card_id": data.clone(),
"exp": 0,
"skill_exp": 0,
"evolve": [],
"created_date_time": global::timestamp()
};
user["card_list"].push(to_push.clone()).unwrap();
global::give_character(data.to_string(), &mut user);
if i < 10 {
user["deck_list"][0]["main_card_ids"][i] = data.clone();
}
}
//todo - should the chosen character be in the team twice?
user["deck_list"][0]["main_card_ids"][4] = ur;
userdata::save_acc(key, user.clone());