80 lines
2.3 KiB
Rust
80 lines
2.3 KiB
Rust
use json::{JsonValue, object};
|
|
use actix_web::{HttpResponse, HttpRequest};
|
|
|
|
use crate::router::{userdata, global};
|
|
|
|
pub fn event(req: HttpRequest, body: String) -> HttpResponse {
|
|
let key = global::get_login(req.headers(), &body);
|
|
let mut event = userdata::get_acc_event(&key);
|
|
|
|
init_star_event(&mut event);
|
|
|
|
userdata::save_acc_event(&key, event.clone());
|
|
|
|
let resp = object!{
|
|
"code": 0,
|
|
"server_time": global::timestamp(),
|
|
"data": event["event_data"].clone()
|
|
};
|
|
global::send(resp)
|
|
}
|
|
|
|
fn switch_music(event: &mut JsonValue, music_id: i32, target_score: i64, index: i32) {
|
|
if index <= 4 {
|
|
//todo
|
|
}
|
|
let to_push = object!{
|
|
master_music_id: music_id,
|
|
position: event["event_data"]["star_event"]["star_music_list"].len(),
|
|
is_cleared: 0,
|
|
goal_score: target_score
|
|
};
|
|
event["event_data"]["star_event"]["star_music_list"].push(to_push).unwrap();
|
|
}
|
|
|
|
fn init_star_event(event: &mut JsonValue) {
|
|
if event["event_data"]["star_event"]["star_level"].as_i32().unwrap() != 0 {
|
|
return;
|
|
}
|
|
event["event_data"]["star_event"]["star_level"] = 1.into();
|
|
switch_music(event, 1014, 53407, 5);
|
|
switch_music(event, 2101, 34557, 5);
|
|
switch_music(event, 2120, 38222, 5);
|
|
switch_music(event, 2151, 46076, 5);
|
|
switch_music(event, 2160, 21991, 5);
|
|
}
|
|
|
|
pub fn star_event(req: HttpRequest, body: String) -> HttpResponse {
|
|
let key = global::get_login(req.headers(), &body);
|
|
let mut event = userdata::get_acc_event(&key);
|
|
init_star_event(&mut event);
|
|
|
|
userdata::save_acc_event(&key, event.clone());
|
|
|
|
let resp = object!{
|
|
"code": 0,
|
|
"server_time": global::timestamp(),
|
|
"data": {
|
|
star_event: event["event_data"]["star_event"].clone(),
|
|
gift_list: [],
|
|
reward_list: []
|
|
}
|
|
};
|
|
global::send(resp)
|
|
}
|
|
|
|
//todo - randomize
|
|
pub fn change_target_music(req: HttpRequest, body: String) -> HttpResponse {
|
|
let key = global::get_login(req.headers(), &body);
|
|
let event = userdata::get_acc_event(&key);
|
|
|
|
//event["star_event"]["music_change_count"] += 1;
|
|
|
|
let resp = object!{
|
|
"code": 0,
|
|
"server_time": global::timestamp(),
|
|
"data": event["event_data"]["star_event"].clone()
|
|
};
|
|
global::send(resp)
|
|
}
|