mirror of
https://git.neonteam.dev/amizing/robinsr.git
synced 2025-03-12 03:28:30 -04:00
51 lines
1.8 KiB
Rust
51 lines
1.8 KiB
Rust
use crate::net::tools::JsonData;
|
|
|
|
use super::*;
|
|
|
|
static UNLOCKED_AVATARS: [u32; 54] = [
|
|
8001, 8002, 8003, 8004, 8005, 8006, 1001, 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1013, 1101,
|
|
1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1201, 1202, 1203, 1204, 1205,
|
|
1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1217, 1301, 1302, 1303, 1304, 1305,
|
|
1306, 1307, 1308, 1309, 1312, 1315,
|
|
];
|
|
|
|
pub async fn on_get_avatar_data_cs_req(
|
|
session: &mut PlayerSession,
|
|
body: &GetAvatarDataCsReq,
|
|
) -> Result<()> {
|
|
let json = JsonData::load().await;
|
|
session
|
|
.send(
|
|
CMD_GET_AVATAR_DATA_SC_RSP,
|
|
GetAvatarDataScRsp {
|
|
retcode: 0,
|
|
is_all: body.is_get_all,
|
|
avatar_list: UNLOCKED_AVATARS
|
|
.iter()
|
|
.map(|id| {
|
|
json.avatars
|
|
.get(id)
|
|
.map(|v| {
|
|
v.to_avatar_proto(
|
|
json.lightcones.iter().find(|v| v.equip_avatar == *id),
|
|
json.relics
|
|
.iter()
|
|
.filter(|v| v.equip_avatar == *id)
|
|
.collect(),
|
|
)
|
|
})
|
|
.unwrap_or(Avatar {
|
|
base_avatar_id: *id,
|
|
level: 80,
|
|
promotion: 6,
|
|
rank: 6,
|
|
..Default::default()
|
|
})
|
|
})
|
|
.collect(),
|
|
..Default::default()
|
|
},
|
|
)
|
|
.await
|
|
}
|