From 4ebcc06d56723755645ddd2f2280c5d02bfde9a7 Mon Sep 17 00:00:00 2001 From: Ethan O'Brien Date: Fri, 24 Jul 2026 21:20:19 -0500 Subject: [PATCH] mission stuff idk --- src/router/databases/mod.rs | 12 ++++++++++++ src/router/mission.rs | 37 +++++++++++++++++++------------------ 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/router/databases/mod.rs b/src/router/databases/mod.rs index a800736..82daae3 100644 --- a/src/router/databases/mod.rs +++ b/src/router/databases/mod.rs @@ -223,6 +223,18 @@ lazy_static! { pub static ref MISSION_REWARD: JsonValue = index_by(&t("mission_reward"), "id"); + pub static ref MISSION_REWARDS: JsonValue = { + let mut info = object! {}; + for data in t("mission_reward").members() { + let id = data["id"].to_string(); + if info[&id].is_null() { + info[&id] = array![]; + } + info[&id].push(data.clone()).unwrap(); + } + info + }; + pub static ref ITEM_INFO: JsonValue = index_by(&t("item"), "id"); pub static ref MUSIC: JsonValue = { diff --git a/src/router/mission.rs b/src/router/mission.rs index 516137e..e3f1f2d 100644 --- a/src/router/mission.rs +++ b/src/router/mission.rs @@ -70,27 +70,28 @@ async fn receive(req: HttpRequest, Session { key, body }: Session) -> impl Respo for mission in body["master_mission_ids"].members() { let mid = mission.as_i64().unwrap(); let mission_info = databases::MISSION_LIST[mid.to_string()].clone(); - let master = databases::MISSION_REWARD[mission_info["masterMissionRewardId"].to_string()].clone(); - let reward_type = master["type"].as_i64().unwrap(); + for master in databases::MISSION_REWARDS[mission_info["masterMissionRewardId"].to_string()].members() { + let reward_type = master["type"].as_i64().unwrap(); - rewards.push(object!{ - give_type: master["giveType"].clone(), - type: master["type"].clone(), - value: master["value"].clone(), - level: master["level"].clone(), - amount: master["amount"].clone() - }).unwrap(); + rewards.push(object!{ + give_type: master["giveType"].clone(), + type: master["type"].clone(), + value: master["value"].clone(), + level: master["level"].clone(), + amount: master["amount"].clone() + }).unwrap(); - items::give_gift(&object!{ - reward_type: reward_type, - value: master["value"].clone(), - amount: master["amount"].clone() - }, &mut user, &mut missions, &mut array![], &mut chats); + items::give_gift(&object!{ + reward_type: reward_type, + value: master["value"].clone(), + amount: master["amount"].clone() + }, &mut user, &mut missions, &mut array![], &mut chats); - match reward_type { - 1 => touched_gem = true, - 4 => touched_coin = true, - _ => { touched_items.push(master["value"].clone()).unwrap(); } + match reward_type { + 1 => touched_gem = true, + 4 => touched_coin = true, + _ => { touched_items.push(master["value"].clone()).unwrap(); } + } } let mut variable = false;