de22105514
- Move json loading into separate crate `common` - Add new http route for handling SRTools API - Listen to `freesr-data.json` file change, and sync with client immediately - Move json loading into `PlayerSession`, instead of load it everytime - Implement global buff for Castorice - Implement `GetBigDataAllRecommendCsReq`
107 lines
2.9 KiB
Rust
107 lines
2.9 KiB
Rust
use proto::{get_big_data_all_recommend_sc_rsp::RecommendType, *};
|
|
|
|
use crate::net::PlayerSession;
|
|
|
|
use super::UNLOCKED_AVATARS;
|
|
|
|
pub async fn on_get_bag_cs_req(
|
|
session: &mut PlayerSession,
|
|
_req: &GetBagCsReq,
|
|
res: &mut GetBagScRsp,
|
|
) {
|
|
let Some(player) = session.json_data.get() else {
|
|
tracing::error!("data is not set!");
|
|
return;
|
|
};
|
|
|
|
res.equipment_list = player
|
|
.lightcones
|
|
.iter()
|
|
.map(|v| v.to_equipment_proto())
|
|
.collect();
|
|
res.relic_list = player.relics.iter().map(|v| v.to_relic_proto()).collect();
|
|
res.material_list = vec![
|
|
Material {
|
|
tid: 101, // Normal Pass
|
|
num: 999999,
|
|
..Default::default()
|
|
},
|
|
Material {
|
|
tid: 102, // Special Pass
|
|
num: 999999,
|
|
..Default::default()
|
|
},
|
|
];
|
|
}
|
|
|
|
pub async fn on_get_archive_data_cs_req(
|
|
_session: &mut PlayerSession,
|
|
_: &GetArchiveDataCsReq,
|
|
res: &mut GetArchiveDataScRsp,
|
|
) {
|
|
res.archive_data = Some(ArchiveData::default());
|
|
}
|
|
|
|
pub async fn on_dress_relic_avatar_cs_req(
|
|
_session: &mut PlayerSession,
|
|
_req: &DressRelicAvatarCsReq,
|
|
_res: &mut DressRelicAvatarScRsp,
|
|
) {
|
|
}
|
|
|
|
pub async fn on_take_off_relic_cs_req(
|
|
_session: &mut PlayerSession,
|
|
_req: &TakeOffRelicCsReq,
|
|
_res: &mut TakeOffRelicScRsp,
|
|
) {
|
|
}
|
|
|
|
pub async fn on_dress_avatar_cs_req(
|
|
_session: &mut PlayerSession,
|
|
_req: &DressAvatarCsReq,
|
|
_res: &mut DressAvatarScRsp,
|
|
) {
|
|
}
|
|
|
|
pub async fn on_take_off_equipment_cs_req(
|
|
_session: &mut PlayerSession,
|
|
_req: &TakeOffEquipmentCsReq,
|
|
_res: &mut TakeOffEquipmentScRsp,
|
|
) {
|
|
}
|
|
|
|
pub async fn on_get_big_data_all_recommend_cs_req(
|
|
_: &mut PlayerSession,
|
|
req: &GetBigDataAllRecommendCsReq,
|
|
res: &mut GetBigDataAllRecommendScRsp,
|
|
) {
|
|
res.big_data_recommend_type = req.big_data_recommend_type;
|
|
|
|
match req.big_data_recommend_type() {
|
|
BigDataRecommendType::RelicAvatar => {
|
|
res.recommend_type = Some(RecommendType::RelicAvatar(BigDataRecommendRelicAvatar {
|
|
recommended_avatar_info_list: UNLOCKED_AVATARS
|
|
.into_iter()
|
|
.map(|recommend_avatar_id| RecomendedAvatarInfo {
|
|
avatar_id_list: vec![],
|
|
recommend_avatar_id,
|
|
relic_set_id: 0,
|
|
})
|
|
.collect(),
|
|
}))
|
|
}
|
|
BigDataRecommendType::AvatarRelic => {
|
|
res.recommend_type = Some(RecommendType::AvatarRelic(BigDataRecommendAvatarRelic {
|
|
recomended_relic_info_list: UNLOCKED_AVATARS
|
|
.into_iter()
|
|
.map(|avatar_id| RecommendedRelicInfo {
|
|
avatar_id,
|
|
..Default::default()
|
|
})
|
|
.collect(),
|
|
}))
|
|
}
|
|
_ => {}
|
|
}
|
|
}
|