mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew.git
synced 2025-05-13 11:37:33 -05:00
Cleanup/fix tutorial
This commit is contained in:
parent
e67879bb25
commit
141488090a
2 changed files with 58 additions and 50 deletions
|
@ -102,33 +102,49 @@ fn get_card(lottery_id: String, lottery_number: String) -> JsonValue {
|
||||||
CARDS[lottery_id][lottery_number].clone()
|
CARDS[lottery_id][lottery_number].clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_random_cards(id: i64, count: usize) -> JsonValue {
|
fn get_random_card(item: &JsonValue, rv: &mut JsonValue, rng: &mut rand::rngs::ThreadRng) {
|
||||||
let total_ratio: i64 = RARITY[id.to_string()].members().into_iter().map(|item| item["ratio"].as_i64().unwrap()).sum();
|
let lottery_id = item["masterLotteryItemId"].as_i64().unwrap();
|
||||||
|
|
||||||
|
let mut random_id = 0;
|
||||||
|
while random_id == 0 {
|
||||||
|
let card = rng.gen_range(1..POOL[lottery_id.to_string()][POOL[lottery_id.to_string()].len() - 1].as_i64().unwrap() + 1);
|
||||||
|
if !get_card_master_id(lottery_id.to_string(), card.to_string()).is_none() {
|
||||||
|
random_id = card;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let to_push = object!{
|
||||||
|
"id": get_card_master_id(lottery_id.to_string(), random_id.to_string()).unwrap(),
|
||||||
|
"master_card_id": get_card_master_id(lottery_id.to_string(), random_id.to_string()).unwrap(),
|
||||||
|
"master_lottery_item_id": lottery_id,
|
||||||
|
"master_lottery_item_number": random_id
|
||||||
|
};
|
||||||
|
rv.push(to_push).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_random_cards(id: i64, mut count: usize) -> JsonValue {
|
||||||
|
let total_ratio: i64 = RARITY[id.to_string()].members().into_iter().map(|item| if item["ensured"].as_i32().unwrap() == 1 { 0 } else { item["ratio"].as_i64().unwrap() }).sum();
|
||||||
let mut rng = rand::thread_rng();
|
let mut rng = rand::thread_rng();
|
||||||
let mut rv = array![];
|
let mut rv = array![];
|
||||||
|
let mut promised = false;
|
||||||
|
|
||||||
|
for (_i, item) in RARITY[id.to_string()].members().enumerate() {
|
||||||
|
if item["ensured"].as_i32().unwrap() == 1 {
|
||||||
|
get_random_card(&item, &mut rv, &mut rng);
|
||||||
|
promised = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if promised {
|
||||||
|
count -= 1;
|
||||||
|
}
|
||||||
for _i in 0..count {
|
for _i in 0..count {
|
||||||
let random_number: i64 = rng.gen_range(1..total_ratio + 1);
|
let random_number: i64 = rng.gen_range(1..total_ratio + 1);
|
||||||
let mut cumulative_ratio = 0;
|
let mut cumulative_ratio = 0;
|
||||||
for (_i, item) in RARITY[id.to_string()].members().enumerate() {
|
for (_i, item) in RARITY[id.to_string()].members().enumerate() {
|
||||||
cumulative_ratio += item["ratio"].as_i64().unwrap();
|
cumulative_ratio += item["ratio"].as_i64().unwrap();
|
||||||
if random_number <= cumulative_ratio {
|
if random_number <= cumulative_ratio {
|
||||||
let lottery_id = item["masterLotteryItemId"].as_i64().unwrap();
|
get_random_card(&item, &mut rv, &mut rng);
|
||||||
|
|
||||||
let mut random_id = 0;
|
|
||||||
while random_id == 0 {
|
|
||||||
let card = rng.gen_range(1..POOL[lottery_id.to_string()][POOL[lottery_id.to_string()].len() - 1].as_i64().unwrap() + 1);
|
|
||||||
if !get_card_master_id(lottery_id.to_string(), card.to_string()).is_none() {
|
|
||||||
random_id = card;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let to_push = object!{
|
|
||||||
"id": get_card_master_id(lottery_id.to_string(), random_id.to_string()).unwrap(),
|
|
||||||
"master_card_id": get_card_master_id(lottery_id.to_string(), random_id.to_string()).unwrap(),
|
|
||||||
"master_lottery_item_id": lottery_id,
|
|
||||||
"master_lottery_item_number": random_id
|
|
||||||
};
|
|
||||||
rv.push(to_push).unwrap();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,31 +172,17 @@ pub fn lottery_post(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
let mut missions = userdata::get_acc_missions(&key);
|
let mut missions = userdata::get_acc_missions(&key);
|
||||||
let mut cleared_missions = array![];
|
let mut cleared_missions = array![];
|
||||||
|
|
||||||
let mut cardstogive;
|
|
||||||
|
|
||||||
let lottery_id = body["master_lottery_id"].as_i64().unwrap();
|
let lottery_id = body["master_lottery_id"].as_i64().unwrap();
|
||||||
if user["tutorial_step"].as_i32().unwrap() != 130 {
|
let price = PRICE[lottery_id.to_string()][body["master_lottery_price_number"].to_string()].clone();
|
||||||
cardstogive = get_random_cards(body["master_lottery_id"].as_i64().unwrap(), 9);
|
|
||||||
let item_id = (body["master_lottery_id"].to_string().parse::<i32>().unwrap() * 100) + 1;
|
if price["consumeType"].as_i32().unwrap() == 1 {
|
||||||
//tutorial
|
items::remove_gems(&mut user, price["price"].as_i64().unwrap());
|
||||||
let new_card = object!{
|
} else if price["consumeType"].as_i32().unwrap() == 4 {
|
||||||
"master_card_id": get_card_master_id(item_id.to_string(), String::from("1")).unwrap(),
|
items::use_item(price["masterItemId"].as_i64().unwrap(), price["price"].as_i64().unwrap(), &mut user);
|
||||||
"master_lottery_item_id": item_id,
|
|
||||||
"master_lottery_item_number": 1
|
|
||||||
};
|
|
||||||
cardstogive.push(new_card).unwrap();
|
|
||||||
} else {
|
|
||||||
let price = PRICE[lottery_id.to_string()][body["master_lottery_price_number"].to_string()].clone();
|
|
||||||
|
|
||||||
if price["consumeType"].as_i32().unwrap() == 1 {
|
|
||||||
items::remove_gems(&mut user, price["price"].as_i64().unwrap());
|
|
||||||
} else if price["consumeType"].as_i32().unwrap() == 4 {
|
|
||||||
items::use_item(price["masterItemId"].as_i64().unwrap(), price["price"].as_i64().unwrap(), &mut user);
|
|
||||||
}
|
|
||||||
|
|
||||||
cardstogive = get_random_cards(lottery_id, price["count"].as_usize().unwrap());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let cardstogive = get_random_cards(lottery_id, price["count"].as_usize().unwrap());
|
||||||
|
|
||||||
let lottery_type = LOTTERY[lottery_id.to_string()]["category"].as_i32().unwrap();
|
let lottery_type = LOTTERY[lottery_id.to_string()]["category"].as_i32().unwrap();
|
||||||
|
|
||||||
let mut new_cards = array![];
|
let mut new_cards = array![];
|
||||||
|
|
|
@ -416,18 +416,23 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
let mut user = userdata::get_acc(&key);
|
let mut user = userdata::get_acc(&key);
|
||||||
let mut user2 = userdata::get_acc_home(&key);
|
let mut user2 = userdata::get_acc_home(&key);
|
||||||
let mut missions = userdata::get_acc_missions(&key);
|
let mut missions = userdata::get_acc_missions(&key);
|
||||||
let ur = user["card_list"][user["card_list"].len() - 1]["master_card_id"].clone();
|
let mut chats = userdata::get_acc_chats(&key);
|
||||||
|
let id = body["master_character_id"].as_i64().unwrap();
|
||||||
|
|
||||||
let id = ur.as_i32().unwrap(); //todo
|
crate::router::chat::add_chat(id, 1, &mut chats);
|
||||||
user["user"]["favorite_master_card_id"] = id.into();
|
|
||||||
user["user"]["guest_smile_master_card_id"] = id.into();
|
let id = id.to_string();
|
||||||
user["user"]["guest_cool_master_card_id"] = id.into();
|
|
||||||
user["user"]["guest_pure_master_card_id"] = id.into();
|
let ur = user["card_list"][0]["master_card_id"].as_i64().unwrap();
|
||||||
user2["home"]["preset_setting"][0]["illust_master_card_id"] = id.into();
|
|
||||||
|
user["user"]["favorite_master_card_id"] = ur.into();
|
||||||
|
user["user"]["guest_smile_master_card_id"] = ur.into();
|
||||||
|
user["user"]["guest_cool_master_card_id"] = ur.into();
|
||||||
|
user["user"]["guest_pure_master_card_id"] = ur.into();
|
||||||
|
user2["home"]["preset_setting"][0]["illust_master_card_id"] = ur.into();
|
||||||
user["gem"]["free"] = (3000).into();
|
user["gem"]["free"] = (3000).into();
|
||||||
user["gem"]["total"] = (3000).into();
|
user["gem"]["total"] = (3000).into();
|
||||||
|
|
||||||
let id = body["master_character_id"].to_string();
|
|
||||||
let userr = &id[id.len() - 2..].parse::<i32>().unwrap();
|
let userr = &id[id.len() - 2..].parse::<i32>().unwrap();
|
||||||
|
|
||||||
let cardstoreward: JsonValue;
|
let cardstoreward: JsonValue;
|
||||||
|
@ -459,9 +464,10 @@ pub fn initialize(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//todo - should the chosen character be in the team twice?
|
//todo - should the chosen character be in the team twice?
|
||||||
user["deck_list"][0]["main_card_ids"][4] = ur;
|
user["deck_list"][0]["main_card_ids"][4] = ur.into();
|
||||||
|
|
||||||
userdata::save_acc(&key, user.clone());
|
userdata::save_acc(&key, user.clone());
|
||||||
|
userdata::save_acc_chats(&key, chats);
|
||||||
userdata::save_acc_home(&key, user2);
|
userdata::save_acc_home(&key, user2);
|
||||||
userdata::save_acc_missions(&key, missions);
|
userdata::save_acc_missions(&key, missions);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue