mirror of
https://git.ethanthesleepy.one/ethanaobrien/ew.git
synced 2025-05-13 11:37:33 -05:00
Add all perfect things
This commit is contained in:
parent
25e9952a53
commit
f27e99fcd1
2 changed files with 23 additions and 4 deletions
|
@ -174,6 +174,16 @@ fn get_full_combo_count(user: &JsonValue, level: i32) -> i64 {
|
||||||
rv
|
rv
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_perfect_count(user: &JsonValue, level: i32) -> i64 {
|
||||||
|
let mut rv = 0;
|
||||||
|
for (_i, current) in user["live_mission_list"].members().enumerate() {
|
||||||
|
if current["clear_master_live_mission_ids"].contains(40 + level) {
|
||||||
|
rv += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rv
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_user(id: i64, friends: &JsonValue, live_data: bool) -> JsonValue {
|
pub fn get_user(id: i64, friends: &JsonValue, live_data: bool) -> JsonValue {
|
||||||
let user = userdata::get_acc_from_uid(id);
|
let user = userdata::get_acc_from_uid(id);
|
||||||
if !user["error"].is_empty() {
|
if !user["error"].is_empty() {
|
||||||
|
@ -197,7 +207,7 @@ pub fn get_user(id: i64, friends: &JsonValue, live_data: bool) -> JsonValue {
|
||||||
rv["live_data_summary"] = object!{
|
rv["live_data_summary"] = object!{
|
||||||
clear_count_list: [get_clear_count(&user, 1), get_clear_count(&user, 2), get_clear_count(&user, 3), get_clear_count(&user, 4)],
|
clear_count_list: [get_clear_count(&user, 1), get_clear_count(&user, 2), get_clear_count(&user, 3), get_clear_count(&user, 4)],
|
||||||
full_combo_list: [get_full_combo_count(&user, 1), get_full_combo_count(&user, 2), get_full_combo_count(&user, 3), get_full_combo_count(&user, 4)],
|
full_combo_list: [get_full_combo_count(&user, 1), get_full_combo_count(&user, 2), get_full_combo_count(&user, 3), get_full_combo_count(&user, 4)],
|
||||||
all_perfect_list: [0, 0, 0, 0],
|
all_perfect_list: [get_perfect_count(&user, 1), get_perfect_count(&user, 2), get_perfect_count(&user, 3), get_perfect_count(&user, 4)],
|
||||||
high_score_rate: {
|
high_score_rate: {
|
||||||
rate: 0,
|
rate: 0,
|
||||||
detail: []
|
detail: []
|
||||||
|
|
|
@ -319,7 +319,7 @@ fn get_live_mission_info(id: i64) -> JsonValue {
|
||||||
MISSION_REWARD_DATA[id.to_string()].clone()
|
MISSION_REWARD_DATA[id.to_string()].clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_live_mission_completed_ids(user: &JsonValue, live_id: i64, score: i64, combo: i64, clear_count: i64, level: i64, full_combo: bool) -> Option<JsonValue> {
|
fn get_live_mission_completed_ids(user: &JsonValue, live_id: i64, score: i64, combo: i64, clear_count: i64, level: i64, full_combo: bool, all_perfect: bool) -> Option<JsonValue> {
|
||||||
let live_info = get_live_info(live_id);
|
let live_info = get_live_info(live_id);
|
||||||
let mut out = array![];
|
let mut out = array![];
|
||||||
let combo_info = get_live_combo_info(live_info["masterMusicId"].as_i64()?);
|
let combo_info = get_live_combo_info(live_info["masterMusicId"].as_i64()?);
|
||||||
|
@ -346,6 +346,11 @@ fn get_live_mission_completed_ids(user: &JsonValue, live_id: i64, score: i64, co
|
||||||
out.push(data["id"].as_i32()?).ok()?;
|
out.push(data["id"].as_i32()?).ok()?;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
5 => {
|
||||||
|
if full_combo && all_perfect && data["level"].as_i64()? == level {
|
||||||
|
out.push(data["id"].as_i32()?).ok()?;
|
||||||
|
}
|
||||||
|
},
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -369,6 +374,9 @@ fn give_mission_rewards(user: &mut JsonValue, missions: &JsonValue, multiplier:
|
||||||
if !missions.contains(data["id"].as_i32().unwrap()) {
|
if !missions.contains(data["id"].as_i32().unwrap()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if data["masterLiveMissionRewardId"].as_i64().unwrap() == 0 {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
let mut gift = get_live_mission_info(data["masterLiveMissionRewardId"].as_i64().unwrap());
|
let mut gift = get_live_mission_info(data["masterLiveMissionRewardId"].as_i64().unwrap());
|
||||||
gift["reward_type"] = gift["type"].clone();
|
gift["reward_type"] = gift["type"].clone();
|
||||||
gift["amount"] = (gift["amount"].as_i64().unwrap() * multiplier).into();
|
gift["amount"] = (gift["amount"].as_i64().unwrap() * multiplier).into();
|
||||||
|
@ -395,7 +403,8 @@ fn live_end(req: &HttpRequest, body: &String) -> JsonValue {
|
||||||
}
|
}
|
||||||
|
|
||||||
let is_full_combo = (body["live_score"]["good"].as_i32().unwrap_or(1) + body["live_score"]["bad"].as_i32().unwrap_or(1) + body["live_score"]["miss"].as_i32().unwrap_or(1)) == 0;
|
let is_full_combo = (body["live_score"]["good"].as_i32().unwrap_or(1) + body["live_score"]["bad"].as_i32().unwrap_or(1) + body["live_score"]["miss"].as_i32().unwrap_or(1)) == 0;
|
||||||
let missions = get_live_mission_completed_ids(&user, body["master_live_id"].as_i64().unwrap(), body["live_score"]["score"].as_i64().unwrap(), body["live_score"]["max_combo"].as_i64().unwrap(), live["clear_count"].as_i64().unwrap_or(0), body["level"].as_i64().unwrap(), is_full_combo).unwrap_or(array![]);
|
let is_perfect = (body["live_score"]["great"].as_i32().unwrap_or(1) + body["live_score"]["good"].as_i32().unwrap_or(1) + body["live_score"]["bad"].as_i32().unwrap_or(1) + body["live_score"]["miss"].as_i32().unwrap_or(1)) == 0;
|
||||||
|
let missions = get_live_mission_completed_ids(&user, body["master_live_id"].as_i64().unwrap(), body["live_score"]["score"].as_i64().unwrap(), body["live_score"]["max_combo"].as_i64().unwrap(), live["clear_count"].as_i64().unwrap_or(0), body["level"].as_i64().unwrap(), is_full_combo, is_perfect).unwrap_or(array![]);
|
||||||
|
|
||||||
update_live_mission_data(&mut user, &object!{
|
update_live_mission_data(&mut user, &object!{
|
||||||
master_live_id: body["master_live_id"].as_i64().unwrap(),
|
master_live_id: body["master_live_id"].as_i64().unwrap(),
|
||||||
|
@ -502,7 +511,7 @@ pub fn skip(req: HttpRequest, body: String) -> HttpResponse {
|
||||||
}
|
}
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
let missions = get_live_mission_completed_ids(&user, body["master_live_id"].as_i64().unwrap(), live["high_score"].as_i64().unwrap(), live["max_combo"].as_i64().unwrap(), live["clear_count"].as_i64().unwrap(), live["level"].as_i64().unwrap(), false).unwrap_or(array![]);
|
let missions = get_live_mission_completed_ids(&user, body["master_live_id"].as_i64().unwrap(), live["high_score"].as_i64().unwrap(), live["max_combo"].as_i64().unwrap(), live["clear_count"].as_i64().unwrap(), live["level"].as_i64().unwrap(), false, false).unwrap_or(array![]);
|
||||||
|
|
||||||
update_live_mission_data(&mut user, &object!{
|
update_live_mission_data(&mut user, &object!{
|
||||||
master_live_id: body["master_live_id"].as_i64().unwrap(),
|
master_live_id: body["master_live_id"].as_i64().unwrap(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue